当前位置: 首页 > news >正文

【研发类-后端开发Skills】api-patterns 技能

API设计原则和决策制定。REST vs GraphQL vs tRPC选择、响应格式、版本控制、分页。

技能概述

api-patterns 技能是一个专注于API设计原则和决策制定的技能。它帮助开发者学习如何思考API设计,而不是简单地复制固定模式。该技能提供了REST、GraphQL和tRPC之间的选择决策树,以及响应格式、版本控制、分页等最佳实践。

下载地址:https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/api-patterns

核心原则

重要理念:学会思考,而不是复制固定模式。每个API设计决策都应该基于具体上下文和需求。

内容地图

该技能包含多个专题文件,按需阅读:

文件描述何时阅读
api-style.mdREST vs GraphQL vs tRPC决策树选择API类型时
rest.md资源命名、HTTP方法、状态码设计REST API时
response.md信封模式、错误格式、分页响应结构设计时
graphql.mdSchema设计、使用场景、安全性考虑GraphQL时
trpc.mdTypeScript monorepo、类型安全TS全栈项目
versioning.mdURI/Header/Query版本控制API演进规划时
auth.mdJWT、OAuth、Passkey、API Keys认证模式选择时
rate-limiting.md令牌桶、滑动窗口API保护时
documentation.mdOpenAPI/Swagger最佳实践文档编写时
security-testing.mdOWASP API Top 10、认证/授权测试安全审计时

选择性阅读规则

重要:仅阅读与请求相关的文件!查看内容地图,找到所需内容。

决策检查清单

在设计API之前,确保完成以下检查:

  • 询问用户关于API消费者的情况
  • 为当前上下文选择API风格(REST/GraphQL/tRPC)
  • 定义一致的响应格式
  • 规划版本控制策略
  • 考虑身份验证需求
  • 规划速率限制
  • 定义文档方法

反模式警告

不要做:

  • 默认所有情况都使用REST
  • 在REST端点中使用动词(/getUsers)
  • 返回不一致的响应格式
  • 向客户端暴露内部错误
  • 跳过速率限制

应该做:

  • 根据上下文选择API风格
  • 询问客户端需求
  • 彻底编写文档
  • 使用适当的状态码

相关技能

需求技能
API实现@[skills/backend-development]
数据结构@[skills/database-design]
安全细节@[skills/security-hardening]

可用脚本

脚本用途命令
scripts/api_validator.pyAPI端点验证python scripts/api_validator.py <project_path>

使用场景

场景1:选择API风格

当需要决定使用REST、GraphQL还是tRPC时,参考api-style.md中的决策树,根据项目特点、团队技能和客户端需求做出选择。

场景2:设计REST API

在设计RESTful API时,参考rest.md了解资源命名规范、HTTP方法正确使用和状态码最佳实践。

场景3:规划API版本控制

当API需要演进和版本管理时,参考versioning.md了解URI、Header和Query版本控制的优缺点。

最佳实践

  1. 上下文优先:始终根据具体上下文做决策,不要盲目套用模式
  2. 一致性:在整个API中保持一致的命名、格式和行为
  3. 文档化:为所有端点提供清晰的文档
  4. 安全性:从一开始就考虑认证、授权和速率限制
  5. 可演进性:设计API时考虑未来的变化和扩展

使用限制

  • 仅当任务明确符合上述范围时使用此技能
  • 不要将输出视为环境特定验证、测试或专家审查的替代品
  • 如果缺少所需的输入、权限、安全边界或成功标准,请停止并要求澄清
http://www.jsqmd.com/news/1195854/

相关文章:

  • 如何用C#写一个带数据可视化的上位机
  • BIDK与MAMBO的关系:从开源项目到企业级工具的演进之路
  • 情感化文本处理技术:从字符串操作到情感分析实战
  • 2026 年|杭州汽车后市场服务企业做GEO服务商哪个好?本地服务商实力排名与行业适配选型指南 - 企业新闻快传
  • 二七大学路名表回收老店,同城最快半小时上门 - 全城热点
  • KLayout版图比对工具strmxor的顶层单元命名优化:解决LVS验证中的导航难题
  • C++14读写锁std::shared_timed_mutex原理与实战:提升多线程性能
  • 鸿蒙应用开发实战【15】— LinearGradient 线性渐变在 ArkUI 中的应用
  • UDS 操作循环:DTC状态机背后的驾驶周期逻辑
  • docker mysql主从安装-元一软件
  • AI安全通讯与受控模型发布机制解析
  • 【研发类-测试开发Skills】azure-resource-manager-playwright-dotnet 技能
  • 湖州德清县打岩石井多少钱一米,德清打井电话,莫干山民宿打井 - 瑞溪泉水利
  • 源代码论文分享|基于springboot的大创管理系统!
  • 原创角色保护系统:从DRM技术到完整技术架构实现
  • 从Hosts文件到现代网络映射:解析主机名与IP地址的底层逻辑
  • 从零手搓大模型(深挖细节GQA )现代大模型为什么不用普通 MHA
  • 鸿蒙应用开发实战【16】— bindSheet 底部弹出面板全解析
  • 2026年7月最新亨得利官方服务项目及价格查询|详细地址与服务电话权威信息声明 - 亨得利官方
  • 基于Python+爬虫的房屋租赁数据可视化系统设计与实现
  • 深入解析MOS管三个工作区及其在H桥电路中的关键应用
  • 2026最新:直播内容总结选哪5款免费实用工具,能控制时间成本?
  • 33-杨逢昌:制造业6S标准落地难破解方案——三层标准分层落地标准化体系
  • Kimi读Excel总卡顿?揭秘3个被官方文档刻意忽略的性能优化关键点:实测提速300%
  • DS90UB954-Q1寄存器驱动实战:中断、AEQ调优与模式生成器应用
  • **2026毓典奢品汇天津黄金二手流通市场深度测评:五大回收机构星级评级与避坑指南** - 二奢行情速报
  • ChatGPT版本解析与API集成开发实战指南
  • 学习栈:YOLO学习一定要学习python吗 ,pytorch与yolo的关系
  • [工业自动化-2]:PLC硬件架构与信号处理链路
  • 从ADC读数到PPM:MQ-2烟雾传感器的电压-浓度转换实战解析