用途:本技能用于维护既有 Spree API v2 集成,或将其迁移到 v3。官方默认建议:不要在 v2 上构建新功能;Spree 5.4+ 已提供 v3,v2 仅保持可用但功能冻结。
主要能力:说明 v2 的两套接口——Storefront API(/api/v2/storefront/,面向顾客,含购物车、商品、结账)与 Platform API(/api/v2/platform/,面向后台,完整 CRUD),二者均为 JSON:API 风格信封(data、attributes、relationships、included)。分层说明认证:匿名浏览公开访问;游客购物车用 X-Spree-Order-Token;登录顾客用 Authorization: Bearer <oauth_token>;后台用 OAuth2 管理员令牌。v2 使用 OAuth2 Doorkeeper 通过 /spree_oauth/token 签发令牌(password 或 client_credentials 授权),作用是 admin/write/read,无 publishable/secret 密钥。令牌默认有效期 1 个月。分页用 page 与 per_page,返回 meta.total_count、meta.total_pages,仅支持 offset。错误为普通 JSON(error 与 422 时的 errors)。
使用方式与迁移:可按端点逐步迁移,v2 与 v3 可共存。迁移要点包括:认证改用 JWT 登录或密钥;ID 由整数改为带前缀;解包 v2 信封为 v3 扁平字段;过滤由 filter[...] 改为 q[...](Storefront 端点需按固定过滤名自行转换);改用 @spree/sdk 与 @spree/admin-sdk;Webhook 载荷形状变化需同步调整接收端。新增字段可装饰 JSON:API 序列化器,但不要新增 v2 端点。
限制:v2 已不再随 spree_api 提供,自 Spree 5.5 起移至已弃用的 spree_legacy_api_v2 gem,可与 Spree 5 配合使用;若需继续运行现有集成,可执行 bundle add spree_legacy_api_v2,全新应用另需运行 bin/rails g spree:legacy_api_v2:install 安装迁移,从旧版本升级的应用通常已具备迁移文件。v2 计划在下一个主版本移除,且不再新增字段、端点与功能。具体源码、OpenAPI 规范与后续阅读资料暂未在此处提供。