ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

cc-skills-golang API技能实战:gRPC、GraphQL与Swagger三件套完整教程

cc-skills-golang API技能实战:gRPC、GraphQL与Swagger三件套完整教程 cc-skills-golang API技能实战gRPC、GraphQL与Swagger三件套完整教程【免费下载链接】cc-skills-golang‍ A collection of Golang agentic skills that works项目地址: https://gitcode.com/gh_mirrors/cc/cc-skills-golangcc-skills-golang 是一个为 Golang 项目打造的 AI Agent 技能集合它把资深 Go 工程师的实践经验沉淀成可复用的技能按需加载给你的 AI 编程助手。本文聚焦其中最有实战价值的API 三件套技能gRPC、GraphQL 与 Swagger帮你快速让 AI 助手写出生产级的 Go 接口代码。 先认识 cc-skills-golang给 AI 助手装上 Go 专家大脑传统做法是把规范写成文档让人读而 cc-skills-golang 把规范直接变成 AI 能执行的技能——每个技能就是一个目录包含一个 SKILL.md 主文件和若干references/深度参考按需懒加载、不占上下文。技能的组织方式非常清晰技能目录核心能力gRPC 技能skills/golang-grpc/proto 组织、状态码、拦截器、流式、测试GraphQL 技能skills/golang-graphql/Schema 设计、DataLoader、订阅、安全防护Swagger 技能skills/golang-swagger/注解规范、代码生成、框架集成、安全定义快速安装把仓库克隆到 AI 助手的技能发现目录即可以通用目录为例git clone https://gitcode.com/gh_mirrors/cc/cc-skills-golang ~/.agents/skills/cc-skills-golangClaude Code、Cursor、Copilot、Codex 等主流助手都能自动发现并加载这些技能。更多安装方式见 README.md。⚡ 技能一gRPC——微服务间通信的规范指南主文件skills/golang-grpc/SKILL.md这个技能把你当成Go 分布式系统工程师来要求代码gRPC 只是纯传输层必须与业务逻辑分离。它覆盖了从 proto 文件到上线运维的完整链路。Proto 文件如何组织版本化目录 包装消息技能要求 proto 文件按领域 版本组织目录如proto/user/v1/并且每个 RPC 的入参出参都必须用Request/Response包装消息而不是直接用string等裸类型——因为裸类型以后无法新增字段会直接锁死 API 的演进能力。完整的目录布局与protoc/buf生成命令见深度参考 protoc-reference.md。用状态码代替裸 error客户端才知道该不该重试这是新手最容易踩的坑直接return nil, err会被 gRPC 归为codes.Unknown客户端完全无法决策。技能给出一张状态码决策表常用的有状态码使用场景InvalidArgument参数格式错误重试无意义NotFound实体不存在Unavailable瞬时故障安全可重试DeadlineExceeded超时配合拦截器日志、鉴权、recovery和GracefulStop()优雅停机服务才能扛住 Kubernetes 的探针与健康检查。无网络也能跑全链路测试技能推荐用bufconn内存连接做测试它能完整跑通序列化、拦截器、metadata 等全链路却没有任何网络开销是 gRPC 单元测试的标准姿势。具体模式含错误码表驱动测试、流式测试见 testing.md。 技能二GraphQL——从 Schema 到 DataLoader 的完整实践主文件skills/golang-graphql/SKILL.md两个主流 Go 库都是 schema-first先写.graphql文件再绑定 Go 代码。技能内置一张选型表维度gqlgengraphql-go实现方式代码生成反射类型安全编译期解析期适用场景大 Schema、联邦、严格类型中小型 Schema、快速迭代一句话建议100 类型的服务选 gqlgen简单场景选 graphql-go。gqlgen 的完整工作流gqlgen.yml、DataLoader 接线、Federation v2见 gqlgen.md。解决 N1DataLoader 必须按请求创建GraphQL 的经典性能杀手是 N1 查询每个User.posts都单独查一次数据库。DataLoader 能把这些查询合并成一次批量查询但技能划了一条红线——DataLoader 必须在 HTTP 中间件里按请求创建绝不能全局共享。全局 DataLoader 会跨请求缓存导致数据过期甚至跨用户数据泄漏。生产防护复杂度上限 内省开关没有防护的 GraphQL 服务一个深层嵌套查询就能吃满 CPU 和内存。技能要求生产环境必须配置查询复杂度上限如FixedComplexityLimit(200)并且把introspection内省关到非生产环境——开着它等于把完整 Schema 暴露给攻击者。 技能三Swagger——三步生成可交互 API 文档主文件skills/golang-swagger/SKILL.mdSwagger 技能把你当成API 文档工程师文档即契约注解必须准确完整让 Swagger UI 成为 API 消费方的唯一事实来源。一键生成文档的三个动作swag init # 生成 docs/docs.go、swagger.json、swagger.yaml swag fmt # 格式化注解注释类似 go fmt再在入口文件用空白导入注册docs包然后把 UI 路由挂到 Gin/Echo/Fiber/Chi 等任意框架上访问/swagger/index.html即可。完整的 CLI 参数多目录解析、排除目录、tag 过滤等见 swag-cli.md。注解怎么写从 Router 到 Security每个 handler 函数用Summary、Param、Success/Failure、Router、Security等注解描述接口全局信息标题、host、BasePath、安全定义集中在main.go声明一次。安全方面支持 Bearer/JWT、API Key、Basic Auth、OAuth2 四种定义保护路由记得加Security否则测试人员在 UI 上根本看不到锁形图标。常见坑速查坑后果修复漏了docs包导入UI 加载空白在 main.go 加空白导入改注解后没重新swag init文档与实现脱节每次改动后重新生成Param body用了基础类型生成直接失败body 参数必须用命名结构体 三件套如何协同API 开发的完整工作流三个技能不是孤立的而是互相交叉引用的原子单元对外 REST 网关 / 开放接口→ Swagger 技能负责文档与契约内部微服务间通信→ gRPC 技能负责强类型、高性能通信。注意技能明确提醒gRPC 的 OpenAPI 文档应走 grpc-gateway 生成而不是 swag需要灵活取数的前端 / 多端 BFF→ GraphQL 技能负责 Schema 与查询防护。更重要的是 golang-how-to 编排技能它会在每次任务时自动加载一组相关技能——比如写一个 gRPC 服务会同时加载 gRPC 测试 错误处理技能调试 panic会加载排障 安全技能。你不需要记忆任何规则用自然语言描述任务即可。 快速上手清单✅ 克隆仓库到助手的技能目录地址见上文✅ 向 AI 助手描述任务如用 gRPC 帮我写一个带健康检查的用户服务✅ AI 自动加载对应技能产出符合生产级规范的代码与文档✅ 遇到细节问题直接翻对应技能的references/深度文档对照。三件套覆盖了从内部通信gRPC、**灵活查询GraphQL到接口文档Swagger**的完整 API 生命周期配合 cc-skills-golang 的自动编排机制你的 Go API 开发从此有资深工程师全程护航。【免费下载链接】cc-skills-golang‍ A collection of Golang agentic skills that works项目地址: https://gitcode.com/gh_mirrors/cc/cc-skills-golang创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表