关于 api-architect
api-architect 是面向 API 设计者的技能,涵盖 REST、GraphQL、gRPC 和 WebSocket 架构。它侧重 API 优先的契约设计,并提供规范示例、验证脚本与常见设计问题检查。
主要功能
- 01设计 REST、GraphQL、gRPC 和 WebSocket API
- 02编写 OpenAPI、SDL 与 Protocol Buffers 规范
- 03规划版本、错误响应和分页
- 04检查安全、限流及常见反模式
- 05运行 API 规范验证脚本
适用场景
- 01为新服务起草 API 契约
- 02设计 GraphQL Schema 或 gRPC 服务
- 03审查 API 版本与错误响应策略
- 04验证 OpenAPI、GraphQL 或 Protocol Buffers 规范
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ curiositech/ some_claude_skills --skill api-architect安装后在 Claude Code 中输入/api-architect确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
CHANGELOG.md.claude-plugin/plugin.jsonreferences/grpc-service.protoopenapi-spec.yamlrate-limiting.yamlgraphql-schema.graphqlapi-security.yamlscripts/validate-api-spec.sh详细介绍
API 架构师
专精于 REST、GraphQL、gRPC 和 WebSocket 架构的 API 设计专家。
激活条件
在以下情况下激活:“API 设计”、“REST API”、“GraphQL 模式”、“gRPC 服务”、“OpenAPI”、“Swagger”、“API 版本管理”、“端点设计”、“速率限制”、“OAuth 流程”、“API 网关”
**不适用于:**数据库模式 → data-pipeline-engineer | 前端使用 → web-design-expert | 部署 → devops-automator
快速开始
- 先定义 API 契约(API 优先设计)
- 选择范式:CRUD 适用 REST,灵活查询适用 GraphQL,内部服务适用 gRPC
- 编写规范:REST 使用 OpenAPI,GraphQL 使用 SDL,gRPC 使用 .proto
- 设计错误响应,确保结构一致
- 在首次发布前规划版本管理
核心能力
| 领域 | 技术 |
|---|---|
| REST | OpenAPI 3.1、HATEOAS、分页 |
| GraphQL | SDL、Relay、DataLoader、Federation |
| gRPC | Protocol Buffers、流式传输模式 |
| 安全 | OAuth 2.0、JWT、API 密钥、RBAC |
| DX | Swagger UI、SDK 生成、沙盒 |
架构模式
API 优先开发
Design Contract → Generate Stubs → Implement → Test Against Spec
响应封装
success: { data: <resource>, meta: { page, total } }
error: { error: { code, message, details: [{ field, issue }] } }
版本管理选项
- URL:
/v1/users(最明确) - Header:
Accept: application/vnd.api+json;version=1 - 查询参数:
/users?version=1
参考文件
./references/ 中的完整示例:
| 文件 | 说明 | 行数 |
|---|---|---|
openapi-spec.yaml | 完整的 OpenAPI 3.1 规范 | 162 |
graphql-schema.graphql | 使用 Relay 连接的 GraphQL | 111 |
grpc-service.proto | Protocol Buffer,包含所有流式传输模式 | 95 |
rate-limiting.yaml | 基于层级的速率限制配置 | 85 |
api-security.yaml | 身份验证、CORS、安全标头 | 130 |
反模式(请避免)
1. 使用动词的 URL
表现:/getUsers、/createOrder、/deleteProduct
**修复:**使用名词(/users、/orders),由 HTTP 方法表达操作
2. 响应封装不一致
**表现:**有时使用 {data: [...]},有时返回原始数组
**修复:**始终使用一致的封装结构
3. 不做版本管理就引入破坏性变更
**表现:**未提前告知就删除字段或更改类型 **修复:**采用语义化版本管理、弃用标头和停用期限
4. GraphQL 中的 N+1 问题
**表现:**解析器为列表中的每个项目单独查询数据库
**修复:**使用 DataLoader 模式进行批处理;对大型负载使用 @defer
5. REST 端点过度获取数据
表现:/users 返回 50 个字段,而客户端只需要 3 个
**修复:**使用稀疏字段集(?fields=id,name,email)或 GraphQL
6. 缺少分页
**表现:**列表端点返回所有记录
**修复:**设置默认上限、使用基于游标的分页,并提供 hasMore 指示器
7. 没有幂等键
**表现:**重复的 POST 请求会创建重复资源
**修复:**接受 Idempotency-Key 标头并返回缓存的响应
8. 泄露内部错误
**表现:**在 500 响应中暴露堆栈跟踪或 SQL 错误 **修复:**在生产环境使用通用错误消息,并通过请求 ID 进行调试
9. 缺少 CORS 配置
**表现:**浏览器客户端因 CORS 错误而被拦截 **修复:**明确配置允许的来源、方法和标头
10. 没有速率限制
**表现:**API 易受滥用,且无法查看使用情况
**修复:**按层级实施限制,并返回 X-RateLimit-* 标头
验证脚本
运行 ./scripts/validate-api-spec.sh 以检查:
- OpenAPI 规范中的版本、安全方案和 operationIds
- GraphQL 模式中的 Query 类型、分页和错误处理
- Protocol Buffers 的语法、包和字段编号
- 硬编码 URL、缺少版本管理等常见问题
质量检查清单
[ ] All endpoints use nouns, not verbs
[ ] Consistent response envelope structure
[ ] Error responses include codes and actionable messages
[ ] Pagination on all list endpoints
[ ] Authentication/authorization documented
[ ] Rate limit headers defined
[ ] Versioning strategy documented
[ ] CORS configured for known origins
[ ] Idempotency keys for mutating operations
[ ] OpenAPI spec validates without errors
[ ] SDK generation tested
[ ] Examples for all request/response types
输出工件
- OpenAPI 规范 - 完整的 API 契约
- GraphQL 架构 - 带连接的类型定义
- Protocol Buffers - gRPC 服务定义
- API 文档 - 开发者指南
- SDK 示例 - 客户端代码示例
- Postman 集合 - API 测试套件
可用工具
Read、Write、Edit- 规范文件操作Bash(npm:*, npx:*)- OpenAPI 检查、代码生成Bash(openapi-generator:*)- SDK 生成