5 Commits

Author SHA1 Message Date
lixi 5f02909af6 docs(api): M3.5 契约冻结 v1.4.0——用户资料与头像
CI / docs-build (push) Failing after 1s
按 iteration-3.5/03 号报告定型表冻结第一波后端交付,相对 v1.3.0 纯增量
(无字段删改、无类型变更、无必填收紧),v1.3.0 客户端无需改动:

- GET /api/v1/me 响应补 nickname(DB 原值、不做 username 回退)与
  avatarUrl(时效性预签名 GET,会过期、客户端不得持久化),两者键恒在值可空
- 新增 PATCH /api/v1/me:三态部分更新(键缺省=不改 / 显式 null=清空 /
  给值=设置),空 patch 与纯空白昵称 400/40000,无乐观锁无幂等键
- Pet 补 avatarUrl(列表/详情/创建/更新四处统一);PATCH /api/v1/pets/{petId}
  收三态 avatarAssetId,补 404/40405 与 422/42203 两格,权限按本次触及字段
  定档(仅头像 WRITE、触及资料 MANAGE、混合取更严)
- 新增 GET /api/v1/me/community-stats:receivedLikeCount/publishedPostCount
  (int64,空数据 0,永不 404),聚合口径逐条进描述
- 两处均不外露 avatarAssetId(只写不读,"有头像"等价 avatarUrl != null)
- 媒体 purpose 白名单枚举追加 user_avatar/pet_avatar
- 零新增错误码:复用 40000/40101/40300/40400/40401/40405/40902/42203,
  错误码表只补语义(40300/40405/42203 三行)

规模 31→32 路径 / 43→45 操作 / 72→75 schemas(UpdateMeRequest、
CommunityStats、CommunityStatsEnvelope——后者为与全 API「每个 200 响应引一个
XxxEnvelope」的既有形态保持一致,故比 03 号报告预估多一个)。
校验:yaml 解析通过、96 处 $ref 全解析、45 个 operationId 无重复、
零未引用 schema、mkdocs build --strict 通过。

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-11 10:19:19 +08:00
lixi f848476c16 docs(api): M3 契约冻结 v1.3.0——community/media 域合入
CI / docs-build (push) Successful in 1m12s
按第二波定型表(iteration-3 报告 13/15/16/17)将 community/media 域草案
合入正典 openapi.yaml,1.2.0 → 1.3.0:

- 新增 13 路径 / 19 操作(媒体两步上传、帖子生命周期、公共 Feed、
  单层评论、点赞/收藏/关注最小接口),正典总量 31 路径 / 43 操作
- 新增 27 schemas / 4 参数 / 7 响应组件;错误码表补 9 码
  (40301/40403/40404/40405/40406/40905/42203/42204/42205)
- info 头新增「Community / Media 域约定」:Idempotency-Key 必带 +
  规范化 request_hash 比对(与 pets 域差异成文)、私有桶 + 时效性
  预签名 GET 读取语义、防枚举码族、互动面=帖子公开面
- 草案 10 处 TODO-FREEZE 全部回填删除;26 项草案→冻结修正照单全收
  (对照见 iteration-3/18 冻结报告,波末入档)
- index.md 端点清单同步;servers 增 :8084、tags 并入 6 个

api 侧字节级快照同步为硬依赖,由后续 api 侧工单执行。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-09-09 11:12:50 +08:00
lixi 511617be55 docs(api): M2 契约冻结 v1.2.0——pets 域 12 路径合入
CI / docs-build (push) Successful in 36s
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
lixi 2ceab6b296 docs(api): 契约补录 POST /api/v1/events(关闭 D-1)
CI / docs-build (push) Successful in 1m22s
以 AnalyticsController 实测行为为准补录埋点上报端点:批量 1-50、
202 逐条结果(accepted/duplicate/rejected + 4 种拒绝原因)、eventId
幂等、唯一允许匿名的写端点(带 Bearer 则完整校验 401/40101)、
400/40000 整批拒绝。info.version 1.0.0 -> 1.1.0(纯增量);
index.md 端点清单同步为 6 端点。python yaml 解析 +
mkdocs build --strict 均通过。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-09-07 14:09:45 +08:00
lixi 273064c10d docs: 第三波交付收口——认证契约与两端实现报告入档
- 新增 API 契约:docs/api/openapi.yaml(T6a 正式化)与契约说明页(契约先行原则)
- 入档报告 16(后端 JWT 会话,37→73 测试)与 17(Flutter 登录纵切,7→30 测试)
- 进展看板更新至第三波完成,第四波为联调 E2E → CI → 编排 → 埋点
- 门禁:mkdocs build --strict 通过
2026-09-04 12:18:29 +08:00