关于 go-api-development
这项技能指导使用 Go 标准库构建 REST API,涵盖接口规划、HTTP 处理、验证、安全、并发、日志和测试。
主要功能
- 01Go 1.22+ 与 net/http 模式
- 02ServeMux 路由与 HTTP 方法
- 03JSON 错误响应和输入验证
- 04中间件、安全与日志
- 05并发处理和请求上下文
- 06单元测试与集成测试
适用场景
- 01规划 API 端点和数据流
- 02实现经过验证的 HTTP 处理器
- 03添加中间件和安全默认设置
- 04测试 API 行为与业务逻辑
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ mindrally/ skills --skill go-api-development安装后在 Claude Code 中输入/go-api-development确认已加载。
详细介绍
使用标准库开发 Go API
核心原则
- 始终使用最新稳定版 Go(1.22 或更高版本),并熟悉 RESTful API 设计原则、net/http 包以及 Go 1.22 引入的新 ServeMux
- 严格按照用户的要求执行
- 首先逐步思考——用伪代码详细描述 API 结构、端点和数据流的计划
- 编写正确、最新、无错误、功能完备、安全且高效的 Go API 代码
- API 实现中不得留下任何待办事项、占位符或缺失内容
- API 设计始终优先考虑安全性、可扩展性和可维护性
API 开发指南
路由和 HTTP 处理
- 使用 Go 1.22 引入的新
http.ServeMux进行路由 - 正确处理 HTTP 方法(GET、POST、PUT、DELETE、PATCH)
- 为响应使用恰当的 HTTP 状态码
- 正确处理请求和响应的 Content-Type
错误处理
- 实施恰当的错误处理,并在有益时使用自定义错误类型
- 在错误响应中返回恰当的 HTTP 状态码
- 使用 JSON 格式的结构化错误响应
- 适当记录错误,以便调试和监控
输入验证
- 为 API 端点实施输入验证
- 验证请求体、查询参数和路径参数
- 向客户端返回清晰的验证错误信息
- 清理输入内容,防止注入攻击
JSON 处理
- 使用
encoding/json进行 JSON 序列化和反序列化 - 使用恰当的结构体标签映射 JSON 字段
- 妥善处理 JSON 解析错误
- 为响应使用恰当的 JSON 格式
并发
- 在有助于提升 API 性能时,利用 Go 内置的并发特性
- 在有益时使用 goroutine 执行并发操作
- 对共享状态实施恰当的同步
- 使用 context 处理请求取消和超时
中间件
- 针对横切关注点(日志记录、身份验证、速率限制)实施中间件
- 使用中间件链组合请求处理流程
- 在需要时处理 CORS
- 添加请求/响应日志中间件
安全性
- 在适当情况下实施身份验证和授权
- 在生产环境中使用 HTTPS
- 实施速率限制以防止滥用
- 验证并清理所有用户输入
- 为 Cookie 和会话采用安全的默认设置
日志记录
- 使用标准库日志记录并输出结构化日志
- 记录适当的信息,以便调试和监控
- 避免记录敏感信息
- 恰当使用日志级别
测试
- 为处理程序和业务逻辑编写单元测试
- 为 API 端点编写集成测试
- 在适当情况下使用表驱动测试
- 在测试中模拟外部依赖
评论
支持 Markdown