SuperAPI AI 工具集

spree-api-v3

编程与开发

查看项目

更新于 10-15 23:57

技能介绍

Spree 6 在 /api/v3/ 下提供三个 REST 接口面,共用一套约定。Store API(/api/v3/store/)面向店面、移动应用与顾客,匿名浏览只需 X-Spree-Api-Key: pk_…;访客购物车/结账/订单另加 X-Spree-Token;已登录顾客加 Authorization: Bearer <jwt>。Admin API(/api/v3/admin/)面向集成与后台,用 sk_… 密钥或管理员 JWT,按密钥 scope 或角色权限键鉴权。Seller API(/api/v3/seller/*)面向市场卖家面板,用卖家 JWT 加 X-Spree-Seller-Id。为某一受众签发的令牌在其他接口面会被拒绝。

主要能力与用法:Store API 默认只读,写入限于购物车、结账、顾客自身账户、心愿单、退货/索赔与订阅。购物车(cart_…)可变且无状态,完成后生成不可变订单(or_…);完成后 GET /carts/{id} 返回 404,应改用 GET /orders/{cart_id}。requirements[] 列出阻止完成结账的项,结账 UI 应据此驱动。Admin API 每个控制器动作映射到 read_<resource> 或 write_<resource> 权限键,密钥 scope 创建后固定,需变更则新建并吊销旧密钥。

共享约定:ID 为 Stripe 风格前缀字符串(如 variant_、or_、py_),不接受整数 ID;列表返回 { data, meta },分页 ?page=&limit=(默认 25,最大 100),排序 ?sort=-completed_at,number;?expand= 加载关联,?fields= 返回稀疏字段;过滤用 Ransack 的 q[attr_predicate]=value,不在允许列表的属性会被静默忽略;金额为十进制字符串并配 display_*;富文本同时返回纯文本与 *_html。POST/PUT/PATCH/DELETE 可带 Idempotency-Key 实现 24 小时重放。错误为 { error: { code, message, details } },常见 401/403/404/422/413/429。限流基于 Rails rate_limit,默认按可发布密钥加 IP 每窗口 300 次、按密钥 600 次,窗口 60 秒,登录、注册、刷新、重置密码另有更严限制。

限制:v2 的 Storefront/Platform API 在 Spree 6 中不存在;令牌受众不通用;密钥 scope 不可修改;Ransack 过滤受各受众允许列表限制;请求体上限 100 KB。资料未提供具体价格或收费信息。