用途:在新增公共 API 端点、重设计服务间接口、评审含 HTTP handler 的 PR、验收标准为“API 可用”的任务切片、或修改 GraphQL schema 时,提供一套 API 设计或评审规范。核心原则:调用方会比你的内部实现活得更久,应按可扩展而非仅满足当前调用方来设计;状态码要诚实,禁止 200 OK 加错误体;列表端点必须分页。
主要能力与步骤:1) 收集契约,确认调用方、版本策略、认证模型、幂等期望与一致性模型;2) 资源与操作命名,REST 用名词复数(POST /users、/users/42),仅在层级关系且子资源无独立标识时嵌套,非 CRUD 动作用子资源(POST /users/42:deactivate),GraphQL 查询用名词、变更用动词并按 input 类型分组;3) 方法与状态码,给出 GET/POST/PUT/PATCH/DELETE 的幂等性与默认成功码,并列出 400、401、403、404、409、410、422、429、500、503 的语义,429/503 需带 Retry-After;4) 分页,默认游标式(不透明 cursor、limit、nextCursor),仅小数据集与需跳页时用 offset,禁止默认返回全部并设硬上限(如 200);5) 统一错误结构,含机器可读 code、可变的 message、details 与 requestId,不泄露堆栈或内部查询;6) 幂等键、ETag/If-Match、Cache-Control 与乐观并发(冲突返回 409);7) 版本与演进,增量变更免费,破坏性变更需路径版本或 @deprecated 及弃用窗口,并维护 OpenAPI/GraphQL SDL 于仓库;8) 评审输出 file:line、分类、建议,新设计输出范围、端点、认证、分页、错误结构、幂等/并发、版本、OpenAPI/SDL,并把决策写入 .gsd/DECISIONS.md。反模式包括 200 加错误体、无界列表、大规模 offset 分页、无 code 的自由文本错误、原地破坏性变更、可重试 POST 忽略幂等、仅在 handler 而非服务层做鉴权。限制:资料未提供该技能的具体安装方式、运行环境、收费与平台信息。