Files
app-261004/skill/fullstack-task/references/api-design.md
T
2026-10-08 11:09:37 +08:00

877 B
Raw Blame History

API 设计规范

风格

  • 默认 REST
  • 复杂查询可用 RPC 风格
  • 内部服务可用 tRPC

路径

  • 资源用复数:/api/posts
  • 嵌套不超过两层:/api/posts/:id/comments
  • 动作用子资源或 POST:/api/posts/:id/publish

方法

  • GET 查询
  • POST 创建
  • PATCH 局部更新
  • PUT 全量替换
  • DELETE 删除

请求

  • Body 用 JSON
  • 分页:?page=1&pageSize=20 或 cursor
  • 排序:?sort=-createdAt
  • 过滤:?status=published&tag=nextjs

响应

成功:

{ "data": { ... }, "meta": { ... } }

状态码

  • 200 -> 成功
  • 201 -> 创建成功
  • 204 -> 删除成功
  • 400 -> 参数错误
  • 401 -> 未登录
  • 403 -> 无权限
  • 404 -> 不存在
  • 409 -> 冲突
  • 422 -> 业务校验失败
  • 500 -> 服务器错误

校验

  • 所有输入用 Zod 校验

  • 错误信息可读,不暴露内部细节