mcpField
S
stripe-inspired-api-design-rules

stripe-inspired-api-design-rules

github.com/pproenca開発218126 回インストール11 週間前に更新
リポジトリ

stripe-inspired-api-design-rules について

Stripe に関連する設計慣例を参考に、JSON HTTP API の設計とレビューに役立つ52のルールをまとめたスキルです。優先順位付きのルールと例を通じて、リソース、リクエスト、エラー、互換性、運用上の振る舞いを検討できます。

主な機能

  1. 018カテゴリにわたる52のルール
  2. 02リソースと URL の設計を優先
  3. 03リクエスト形式、エラー、リトライを網羅
  4. 04バージョニングと後方互換性を扱う
  5. 05例とルール別の参照情報を掲載

活用シーン

  1. 01新しい JSON HTTP API やエンドポイントを設計
  2. 02API 提案、OpenAPI 仕様、PR をレビュー
  3. 03命名、エラーの一貫性、互換性を監査
  4. 04API の形状に起因する連携問題を解決

インストール

コマンドをコピーしてターミナルで実行します。

$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 設計のベストプラクティス

業界で最も広く称賛され、模倣されている JSON HTTP API である Stripe API の設計規約をまとめたリファレンスです。8 つのカテゴリにわたる、実践的な 52 のルールを収録しています。誤った決定がすべてのエンドポイント、すべての SDK、すべてのクライアント統合に取り返しのつかない影響を及ぼす度合いに応じて、優先順位を付けています。各ルールでは理由を説明し、誤ったコードと正しいコードを示し、正式な情報源へのリンクを掲載しています。

適用する場面

次のような場面で、このスキルを活用してください。

  • 新しい JSON HTTP API、または既存 API の新しいエンドポイントを設計するとき
  • エンドポイントを追加・変更する API 設計提案、OpenAPI 仕様、PR をレビューするとき
  • API の「誤った」構造がクライアントのバグを引き起こしている統合をデバッグするとき
  • 命名の一貫性、エラー形式の統一性、互換性リスクについて API を監査するとき
  • API 設計レポートを作成するとき(インスペクターツールが出力する Critical / Warning / Suggestion / Positive のようなもの)
  • 2 つの設計のどちらかを選ぶ際に、判断の裏付けとなる信頼できる情報源を探すとき
  • API 設計を学び始めるとき — まず身につけるべき標準的なパターンをまとめています

これらのルールは汎用的で、Stripe を模倣する API に限らず、あらゆる JSON HTTP 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 つのカテゴリに限られます。

クイックリファレンス

1. リソースのモデリングと識別子(CRITICAL)
2. URL 構造と HTTP セマンティクス(CRITICAL)
3. リクエストとレスポンスの形式(HIGH)
4. エラーとステータスコード(HIGH)
5. 冪等性と安全な再試行(HIGH)
  • idem-key-header — すべての変更リクエストで Idempotency-Key ヘッダーを受け付けます
  • idem-scoped-per-account — 冪等性キーはグローバルではなく、アカウントごとにスコープを設定します
  • idem-24h-ttl — 冪等性キーを 24 時間保持し、72 時間後に削除します
  • idem-fail-on-key-reuse — 異なるパラメーターでキーが再利用された場合は 409 を返します
  • idem-recovery-points — 複数ステップの冪等な操作にはリカバリーポイントを使用します
6. バージョン管理と後方互換性(HIGH)
  • ver-dated-versions — v1/v2/v3 ではなく、日付形式のバージョン(YYYY-MM-DD)を使用します
  • ver-account-pinning — 各アカウントのバージョンは、最初のリクエスト時のものに固定します
  • ver-additive-changes — 後方互換性のある変更に該当するものを定義します
  • ver-version-change-modules — 破壊的変更はそれぞれバージョン変更モジュールにカプセル化します
  • ver-tolerate-unknown — クライアントは不明なフィールド、イベント、列挙値を許容する必要があることを文書化します
7. 命名、多態性、メタデータ(中〜高)
8. 認証、Webhook、検索(中〜高)

使用方法

「このフィールドはブール値と列挙型のどちらにすべきか?」といった特定の質問については、該当するルール(naming-enums-over-booleans)を直接参照してください。各ルールには、その理由、コード例、正式な情報源が記載されています。

API 全体のレビューや監査を行う場合は、上から順にカテゴリを確認してください。この順序は Stripe 独自の設計上の優先順位に沿っています。まずリソースのモデル化と URL 構造を適切に整え、次に形式、エラー、冪等性、バージョニングに取り組みます。命名と運用面は変更が最も容易なため、最後に扱います。

構造化された指摘レポート(インスペクターツールが出力するようなレポート)を作成する場合は、ルールをスラッグ(resource-unix-seconds-timestamps、format-no-total-counts)で引用してください。これにより、各指摘を具体的で根拠のある情報源にたどれるようになります。

カテゴリの順序付けの根拠となる影響の連鎖についてはセクションの定義を、新しいルールを追加する場合はルールのテンプレートを参照してください。

参考ファイル

ファイル説明
references/_sections.mdカテゴリの定義と、設計の波及効果に基づく順序
assets/templates/_template.md新しいルールを作成するためのテンプレート
metadata.jsonバージョンと参考 URL
gotchas.mdルールの適用時に見つかった失敗しやすい点

コメント