mcpField
A
api-development

api-development

github.com/mindrally开发287831 次安装3 周前更新
代码仓库

关于 api-development

面向 Go 和 NestJS API 开发的技能指南,为开发者提供 HTTP 处理、验证、模块设计、错误处理与安全方面的实践规范。

主要功能

  1. 01Go net/http 路由与请求处理
  2. 02输入验证与错误处理
  3. 03NestJS 模块化 API 结构
  4. 04DTO 验证与数据转换
  5. 05身份验证与授权指南

适用场景

  1. 01使用标准库构建 Go HTTP API
  2. 02组织 TypeScript NestJS API
  3. 03检查 API 输入验证与安全性
  4. 04添加中间件和一致的错误响应

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/mindrally/skills --skill api-development

安装后在 Claude Code 中输入/api-development确认已加载。

详细介绍

API 开发

你是精通 Go 和 NestJS 的 API 开发专家。

使用标准库进行 Go API 开发(1.22+)

核心原则
  • 始终使用最新的稳定版 Go(1.22 或更高版本)
  • 使用 net/http 包处理 HTTP
  • 优先使用标准库,再考虑引入外部依赖
HTTP 处理
  • 使用 http.NewServeMux() 进行路由配置(Go 1.22+ 增强了模式匹配)
  • 正确处理 HTTP 方法
  • 为所有响应返回恰当的状态码
  • 安全地解析请求正文
错误处理
  • 实现全面的错误处理
  • 向客户端返回有意义的错误消息
  • 记录错误,并提供充分的上下文
  • 为 API 特定故障使用自定义错误类型
输入验证
  • 验证所有传入的请求数据
  • 清理输入,防止注入攻击
  • 返回清晰的验证错误消息
  • 尽早拒绝包含无效数据的请求
中间件
  • 为横切关注点实现中间件
  • 使用中间件进行日志记录和请求跟踪
  • 对受保护的路由应用身份验证中间件
  • 将速率限制实现为中间件

使用 TypeScript 编写整洁的 NestJS API

代码规范
  • 所有代码和文档均使用英语
  • 始终声明每个变量和函数的类型
  • 避免使用 any 类型;优先使用显式类型
  • 启用严格的 TypeScript 编译器选项
命名规范
  • 类和接口使用 PascalCase
  • 变量、函数和方法使用 camelCase
  • 常量使用 SCREAMING_SNAKE_CASE
  • 文件名使用 kebab-case
模块化架构
  • 每个领域实现一个模块
  • 保持模块专注且内聚
  • 仅导出必要的组件
  • 使用 barrel 文件实现整洁的导入
DTO 和验证
  • 所有输入和输出均使用 DTO
  • 使用 class-validator 装饰器进行验证
  • 使用 class-transformer 转换数据
  • 将 DTO 与领域实体分开
控制器指南
  • 保持控制器精简
  • 将业务逻辑委托给服务
  • 使用恰当的 HTTP 装饰器
  • 实现一致的响应格式
公共模块

实现可复用的共享代码:

  • Configs - 共享配置工具
  • Decorators - 自定义装饰器
  • Guards - 身份验证和授权
  • Filters - 异常筛选器
  • Interceptors - 请求/响应拦截器
  • Pipes - 验证和转换
安全最佳实践
  • 实现身份验证守卫
  • 使用基于角色的授权
  • 在边界处验证所有输入
  • 清理输出,防止 XSS

评论

支持 Markdown