Communitygithub.com

API設計レビュー

新しいREST APIの設計、エンドポイント・ルート・コントローラのレビュー、OpenAPI/Swagger仕様の確認、ステータスコード・ページネーション・バージョニング・エラー形式の選択、またはAPI変更の破壊的変更チェックに使用します。

API設計レビュー とは?

このスキルは、REST APIの設計をクライアント視点で評価するための包括的なレビュープロセスを提供します。予測可能な名前、誠実なステータスコード、統一されたエラー形式、安全なリトライ、そして破壊的変更の防止に焦点を当てています。各発見は具体的なルートを指し示し、修正された設計を示します。 このスキルは、まず全エンドポイントをインベントリし、メソッド・パス・ステータスコード・リクエスト/レスポンス形状を一覧化します。次に、定義されたルールに基づいて個々のエンドポイントをチェック(リソース命名、メソッドの適切性、ステータスコードの正しい使用、エラー形状の一貫性、命名規則、コレクションのページネーション、冪等性、バージョニング戦略など)し、API全体の一貫性を評価します。変更レビューの場合は新旧コントラクトを比較し、既存クライアントに影響を与える変更をフラグ付けします。 レポートは、レビューしたエンドポイント数、発見数(破壊的変更の内訳)から始まり、影響度の高い順に各発見の詳細(エンドポイント、問題、修正)を記載します。最後に一貫性サマリーと、ゼロから設計する場合の提案エンドポイント表を提供します。 特に、個別エンドポイントだけを見て全体の一貫性を見落とすミスや、後方互換性のある追加で済むのに再設計を推奨するミス、サーバーコードの動作だけを確認してクライアントの期待を無視するミスを防ぐために設計されています。

対応✓Claude Code~Codex CLI✓Cursor
npx skills add https://github.com/WST2002/claude-code-skills/tree/HEAD/skills/api-design-review

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

API設計レビュー は何をしますか?

概要

APIをクライアントの視点から評価します。予測可能な名前、誠実なステータスコード、統一されたエラー形状、安全なリトライ、そして予期しない破壊的変更がないこと。各発見は具体的なルートを指し示し、修正された設計を示します。

方法

  1. インベントリ. すべてのエンドポイントを METHOD /path → ステータスコード → リクエスト/レスポンス形状 としてリストアップします。ルート、コントローラ、OpenAPIファイル、DTOを読みます。
  2. 各エンドポイントのチェック 下記ルールに従って行います。
  3. API全体のチェック: エンドポイント間の一貫性は、個々の選択よりも重要です。
  4. 変更: diffをレビューする場合、新旧コントラクトを比較し、既存クライアントを破壊するものをフラグ付けします。
  5. レポート 下記の出力契約に従って作成します。

ルール

領域ルール
リソース複数形の名詞、動詞は使いません: POST /orders、/createOrder ではありません。真の所有関係のみ入れ子に: /users/{id}/orders。
メソッドGETは読み取りで安全。POSTは作成。PUTは置換。PATCHは部分更新。DELETEは削除。GETで状態を変更してはいけません。
ステータスコード200 OK、201 Created (+ Location)、204 No Content、400 不正な入力、401 未認証、403 許可なし、404 存在しない、409 競合、422 バリデーション、429 レート制限、5xxはサーバー障害のみ。200で {"error": ...} を返してはいけません。
エラー全箇所で統一された形状、例: RFC 9457: { "type", "title", "status", "detail", "errors": [{ "field", "message" }] }。レスポンスにスタックトレースやSQLを含めてはいけません。
命名JSONフィールドのケーシングを統一(camelCase または snake_case)、一貫したID、ISO 8601 UTCタイムスタンプ、金額は整数の最小単位または10進数の文字列+通貨。
コレクションすべてのリストにページネーション(大規模または変化するデータにはカーソル推奨)、ページサイズ上限設定、次のカーソルまたはリンクを返す。フィルタリングとソートはクエリパラメータ経由。
冪等性支払い、注文、メールを作成するPOSTのリトライは Idempotency-Key を受け付けます。PUTとDELETEは設計上冪等です。
バージョニング明確な戦略(/v1 パスまたはヘッダー)。破壊的変更は新しいバージョンへ。
破壊的変更フィールドの削除や名前変更、型の変更、オプション入力の必須化、ステータスコードやエラー形状の変更、バリデーションの厳格化。
セキュリティ公開されていないすべてのルートに認証、オブジェクトレベルの所有権チェック、認証と高負荷ルートにレート制限、URLに機密データを含めない。
パフォーマンス無制限のレスポンスなし、大きなオブジェクトには fields またはスパースレスポンスをサポート、キャッシュ可能なGETにはETagまたはCache-Control。

出力契約

以下で開始: N エンドポイントレビュー済み、M 発見(うちX 破壊的変更)。 その後、影響度の高い順に:

### [Breaking | High | Medium | Low] タイトル
- エンドポイント: METHOD /path (ファイル:行)
- 問題: クライアントが体験すること
- 修正: 修正されたルート、ステータスコード、またはJSON形状

最後に短い 一貫性サマリー(ケーシング、エラー形状、ページネーション、バージョニング: 一貫しているかどうか)と、ゼロから設計する場合は提案エンドポイント表を記載します。

よくある間違い

  • エンドポイントを一つずつレビューし、2つのエンドポイント間でケーシングやエラー形状が一致していないことを見逃す。
  • 後方互換性のある追加で十分なのに、再設計を推奨する。
  • サーバーコードがまだ動作するから変更は安全だと判断する: 既存クライアントが送信・期待しているものを確認すること。
  • バリデーションエラーに500を使用したり、許可エラーに404を使用したりする際に意図的な決定を省略する。

作成者: Wageesha Tripathi · LinkedIn · メール · 他のスキル

Individual skills in this repo

This repo contains 1 individual skill — each has its own dedicated page.

関連スキル