feat(r2): 地址与设计清单完整 CRUD(事务/归属校验/状态机)
addresses: - 补 PATCH /:id、DELETE /:id(契约 §4 全路由齐备) - 默认地址唯一性事务:create/update/setDefault 先清旧默认再写入 - 首个地址自动设为默认;删除默认地址事务内补偿最新一条 - 归属校验统一:不存在 404,非本人 403 design-list: - 补 PATCH /:id、DELETE /:id、POST /batch-delete(宽松语义返回 deleted 数) - items 强制恰好 1 个元素(一条设计=一条清单,阶段0 决策#1) - designData 白名单 7 键放行、单条 ≤1MB 校验(400) - 单向状态机 DRAFT→SUBMITTED→PROCESSING→DONE,回退/跳级 400 - PATCH 部分更新语义,不传 items 不清 designData(R4 wordcloud 保护) infra: - main.ts: JSON body 上限 100KB→2MB,使契约 1MB 设计数据可达(>2MB 返回 413) - exceptions filter: body-parser entity.too.large 映射 413 - api-contract-v1.md §5 补实现说明(非契约变更) 验证:nest build 通过;本地 3091 实例 + mock 登录实测 35 项全过 (CRUD/默认地址补偿/越权 403/404/状态机/1MB 边界/413/未登录 401) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -179,6 +179,11 @@
|
||||
> 贴纸图 `src` 必须为 COS 持久 URL(禁止 `wxfile://`/`tmp`)、保留 `wordcloud` 分组、
|
||||
> 保留 `category.mask`;后端该 JSON 白名单须放行 `version/background/wordcloud/rotation/zIndex`。
|
||||
>`items` 为服务端 JSON,需做结构白名单与大小校验(单条 ≤ 1MB)。
|
||||
>
|
||||
> **实现补充(R2,非契约变更)**:服务端 JSON body 传输上限为 **2MB**(`main.ts`,Nest 默认 100KB
|
||||
> 会使 1MB 业务限制不可达)。三层边界:≤1MB 正常受理;1MB~2MB 由 design-list service 返回
|
||||
> 400「单条设计数据超过 1MB 上限」;>2MB 返回 413「请求体过大」。文件上传(R4 multipart)
|
||||
> 不走此限制,沿用各模块独立校验(如底图 ≤10MB)。
|
||||
|
||||
### PATCH /api/design-list/:id
|
||||
|
||||
|
||||
Reference in New Issue
Block a user