mcpField
S
stripe-inspired-api-design-rules

stripe-inspired-api-design-rules

github.com/pproenca开发218126 次安装11 周前更新
代码仓库

关于 stripe-inspired-api-design-rules

这项参考技能包含 52 条 JSON HTTP API 设计与审查规则,借鉴 Stripe 相关约定。它通过分优先级的规则和示例,帮助 API 设计者与审查者分析资源、请求、错误、兼容性及运行行为。

主要功能

  1. 01提供八类共 52 条规则
  2. 02优先处理资源与 URL 设计
  3. 03涵盖请求格式、错误与重试
  4. 04涉及版本管理和向后兼容
  5. 05附带示例与规则参考来源

适用场景

  1. 01设计新的 JSON HTTP API 或端点
  2. 02审查 API 方案、OpenAPI 规范或 PR
  3. 03检查命名、错误一致性与兼容性
  4. 04解决由 API 结构引发的集成问题

安装

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

$npx skills add https://github.com/pproenca/dot-skills --skill stripe-inspired-api-design-rules

安装后在 Claude Code 中输入/stripe-inspired-api-design-rules确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

AGENTS.md
gotchas.md
metadata.json
assets/templates/
_template.md
references/
_sections.md
error-doc-url-on-every-error.md
error-four-type-enum.md
error-http-status-mapping.md
error-lowercase-snake-case-codes.md
error-message-mandatory-code-optional.md
error-top-level-object.md
format-bracket-notation-nesting.md
format-cursor-pagination.md
format-dot-notation-expansion.md
format-expand-parameter.md
format-form-encoded-requests.md
format-list-envelope.md
format-no-total-counts.md
idem-24h-ttl.md
idem-fail-on-key-reuse.md
idem-key-header.md
idem-recovery-points.md
idem-scoped-per-account.md
naming-american-english.md
naming-boolean-past-tense.md
naming-enums-over-booleans.md
naming-metadata-pattern.md
naming-simple-unambiguous.md
naming-snake-case-wire-format.md
naming-type-discriminator-polymorphism.md

详细介绍

Stripe 启发的 API 设计最佳实践

本文提炼了 Stripe API 背后的设计惯例——这是业内最受推崇、也最常被仿效的 JSON HTTP API。包含 8 个类别中的 52 条可执行规则,并按错误决策对每个端点、每个 SDK 和每项客户端集成造成的连锁影响是否不可逆进行优先级排序。每条规则都解释了原因、展示了错误与正确的代码示例,并链接到权威来源。

适用场景

遇到以下情况时,可参考这些规则:

  • 设计新的 JSON HTTP API,或为现有 API 添加新端点
  • 审查 API 设计提案、OpenAPI 规范,或新增/更改端点的 PR
  • 排查集成问题,其中 API 的“错误”结构导致了客户端问题
  • 审核 API 的命名一致性、错误结构统一性或兼容性风险
  • 编写 API 设计报告(即检查工具生成的那类报告——Critical / Warning / Suggestion / Positive)
  • 在两种设计方案之间做选择,并寻找权威来源作为依据
  • 开始学习 API 设计——这些是应优先掌握的经典模式

这些规则具有通用性,适用于任何 JSON HTTP API,而不仅是仿照 Stripe 的 API。相关关键词包括“API design”“OpenAPI”“endpoint”“schema”“webhook”“idempotency”“pagination”“API versioning”,以及对 YAML/JSON 规范文件的审查。

按优先级划分的规则类别

优先级类别影响前缀
1资源建模与标识符CRITICALresource-
2URL 结构与 HTTP 语义CRITICALurl-
3请求与响应格式HIGHformat-
4错误与状态码HIGHerror-
5幂等性与安全重试HIGHidem-
6版本控制与向后兼容性HIGHver-
7命名、多态与元数据MEDIUM-HIGHnaming-
8身份验证、Webhook 与搜索MEDIUM-HIGHops-

靠前的类别会产生更严重的连锁影响:资源建模中的错误选择(数值 ID、没有 object 判别字段)会永久影响每个端点;Webhook 事件命名中的错误选择,则只需修正一个类别。

快速参考

1. 资源建模与标识符(CRITICAL)
2. URL 结构与 HTTP 语义(关键)
3. 请求与响应格式(高)
4. 错误与状态码(高)
5. 幂等性与安全重试(高)
6. 版本控制与向后兼容性(高)
7. 命名、多态与元数据(中高优先级)
8. 身份验证、Webhook 与搜索(中高优先级)

使用方法

对于聚焦的问题(“这个字段应该是布尔值还是枚举?”),请直接查看相关规则(naming-enums-over-booleans)——每条规则均独立成篇,包含原因、代码示例和权威来源。

对于完整的 API 评审或审计,请按类别从上到下逐项检查。顺序与 Stripe 自身的设计优先级一致:首先正确设计资源模型和 URL 结构;接下来处理格式、错误、幂等性和版本控制;最后处理命名和运维接口,因为这些最容易演进。

要生成结构化的发现报告(例如检查工具生成的报告),请使用规则的 slug 引用规则——resource-unix-seconds-timestamps、format-no-total-counts——这样每项发现都能追溯到具体且可靠的来源。

阅读章节定义,了解类别排序背后的级联影响理由;添加新规则时,请参阅规则模板。

参考文件

文件描述
references/_sections.md类别定义,以及按设计传播影响排序的类别
assets/templates/_template.md编写新规则的模板
metadata.json版本和参考 URL
gotchas.md应用这些规则时发现的易错点

评论

支持 Markdown