Files
patbond-doc/docs/api/index.md
T
lixi 511617be55
CI / docs-build (push) Successful in 36s
docs(api): M2 契约冻结 v1.2.0——pets 域 12 路径合入
openapi.yaml 1.1.0 → 1.2.0:宠物 CRUD、品种/疫苗目录、体重、疫苗、健康事件、
照护提醒、档案聚合摘要共 12 路径 / 18 操作 / 30 schema 合入正典,按 iteration-2
报告 13/16/17/18 定型表修正草案(响应主键裸 id、vaccineName、40904/42202 新码、
42200 不引入、PATCH 不支持清空回 null、cursor 分页正典、PetSummary 四聚合口径
逐字收录、tz 参数缺省 UTC、防枚举 40401/40402 语义定型)。错误码表 +8:
40300/40401/40402/40902/40903/40904/42201/42202。docs/api/index.md 端点清单同步。
冻结后任何字段变更须显著上报、两端同步。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-09-08 10:10:37 +08:00

2.1 KiB
Raw Blame History

API 契约

正式契约见 openapi.yamlOpenAPI 3v1.2.0),当前 18 路径 / 24 操作:

  • 认证域(第一迭代冻结):注册、登录、刷新、退出、当前用户 5 个端点,统一错误信封 {code, message, data} 与错误码表,以及会话轮换与登录锁定策略说明。

  • 埋点域(M2 第一波补录):POST /api/v1/events 批量上报产品事件——单批 1–50 条、202 逐条结果(accepted/duplicate/rejected)、eventId 幂等去重、唯一允许匿名的写端点(携带 Bearer 则完整校验)。

  • 宠物健康档案域(M2 第二波冻结,12 路径;冻结报告为 iteration-2 的 19 号报告,波末入档):

    • 宠物 CRUDGET/POST /api/v1/petsGET/PATCH /api/v1/pets/{petId}(乐观锁、防枚举 404/40401、MANAGE 仅 owner
    • 只读字典:GET /api/v1/breedsGET /api/v1/vaccine-catalog?species= 过滤)
    • 体重记录:GET/POST /api/v1/pets/{petId}/weightscursor 分页正典 {items, nextCursor, hasMore}
    • 疫苗记录:GET/POST /api/v1/pets/{petId}/vaccinationsPATCH /api/v1/vaccinations/{vaccinationId}(状态机 422/42201、剂次唯一 409/40904
    • 健康事件:GET/POST /api/v1/pets/{petId}/health-eventsPATCH /api/v1/health-events/{eventId}cursor 分页、金额整数分)
    • 照护提醒:GET/POST /api/v1/pets/{petId}/care-remindersPATCH /api/v1/care-reminders/{reminderId}?status= 过滤、流转 422/42202
    • 档案聚合:GET /api/v1/pets/{petId}/summary(最新体重、疫苗进度、下次接种、当月花费;?tz= 缺省 UTC

    权限三档 READ/WRITE/MANAGEADR-015 三角色)、创建返回 201、PATCH 不支持清空回 null、四个记录类 POST 支持可选 Idempotency-Key;错误码新增 40300/40401/40402/40902/40903/40904/42201/42202。

约定:契约变更须先改本文件目录下的 OpenAPI,再改实现(契约先行);错误码只增不改义;pets 域已冻结(1.2.0)——冻结后任何字段变更须显著上报、两端同步