mcpField
A
api-design-reviewer

api-design-reviewer

github.com/borgheiテスト・品質1.0k162 回インストール1 週間前に更新
リポジトリ

api-design-reviewer について

api-design-reviewerは、REST API設計やOpenAPI/Swagger仕様を確認するエンジニアリングチーム向けのスキルです。規約チェック、バージョン差分の分析、設計評価を行い、破壊的変更には移行ガイドを生成します。

主な機能

  1. 01RESTの命名と規約を検査
  2. 02仕様間の破壊的変更を検出
  3. 035つの観点で設計を採点
  4. 04移行ガイドと改善案を生成

活用シーン

  1. 01新しいREST APIや契約のレビュー
  2. 02OpenAPI/Swagger仕様の検証
  3. 03リリース間の比較とAPIバージョン管理
  4. 04CIでのAPI品質ゲート設定

インストール

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

$npx skills add https://github.com/borghei/claude-skills --skill api-design-reviewer

インストール後、Claude Code で/api-design-reviewerを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
api_antipatterns.md
rest_design_rules.md
rest-design-patterns.md
tooling-ci-and-troubleshooting.md
scripts/
api_linter.py
api_scorecard.py
breaking_change_detector.py

詳細

API 設計レビュアー

REST API の設計を、規約、ベストプラクティス、業界標準に照らして包括的に分析・レビューします。自動リンティング、破壊的変更の検出、設計スコアカードを通じて、エンジニアリングチームによる一貫性があり、保守しやすく、適切に設計された API の構築を支援します。

主な機能

  • API のリンティングと規約の分析 — リソースの命名(kebab-case の URL、camelCase のフィールド)、HTTP メソッドの使用方法、URL 構造、ステータスコードへの準拠、エラー形式の一貫性、ドキュメントの網羅性を確認します。
  • 破壊的変更の検出 — 2 つの仕様バージョン間で、エンドポイントの削除、レスポンス構造の変更、フィールドの削除・名称変更、型の変更、新しい必須フィールド、ステータスコードの変更を検出し、移行ガイドを提供します。
  • API 設計のスコアリング — 一貫性(30%)、ドキュメント(20%)、セキュリティ(20%)、使いやすさ(15%)、パフォーマンス(15%)に基づく加重スコアカードを作成し、A〜F の評価と推奨事項を示します。

使用するタイミング

  • 新しい REST API を設計するとき、または API コントラクトをレビューするとき。
  • OpenAPI/Swagger 仕様が REST の規約に準拠しているか検証するとき。
  • API のバージョン管理を行い、リリース間の破壊的変更を検出するとき。
  • CI で API 設計の品質を基準にデプロイを制御するとき。

まず確認すること

レビューを作成する前に、以下の情報を確認してください。不明または曖昧な項目があれば、推測せずに質問してください。

  • 出力の種類 — リントレポート、設計スコアカード、破壊的変更の検出のいずれか(api_linter.py、api_scorecard.py、breaking_change_detector.py のどれを使うかが決まります)
  • 仕様ファイル — OpenAPI/Swagger の JSON、または差分を取る 2 つのバージョン(ツールが解析する入力です)
  • 品質基準/CI ゲート — 最低評価または破壊的変更時の失敗条件(--min-grade/--exit-on-breaking の設定、および判定の厳しさが決まります)

停止ルール:出力を最も大きく左右する 2〜3 項目だけを質問してください。ユーザーが「そのまま下書きして」と言った場合は、作業を進め、成果物の冒頭に前提を列挙してください。

ツール

ツール目的コマンド
api_linter.pyOpenAPI/Swagger の JSON 仕様を REST の規約とベストプラクティスに照らしてリンティングするpython scripts/api_linter.py openapi.json --format json
breaking_change_detector.py2 つの仕様バージョン間の破壊的変更を検出する(移行ガイド付き)python scripts/breaking_change_detector.py v1.json v2.json --exit-on-breaking
api_scorecard.py5 つの加重評価項目に基づいて API 設計の品質を採点する(評価は A〜F)python scripts/api_scorecard.py openapi.json --min-grade B

参考資料

タスクに合った参考資料を読み込んでください。このファイルは簡潔に保ち、必要に応じて詳細を参照します。

  • references/rest-design-patterns.md — REST の命名、メソッド、URL の原則、バージョン管理戦略、ページネーションのパターン、エラー形式とステータスコード、認証/RBAC のパターン、レート制限、HATEOAS、冪等性、後方互換性のルール、OpenAPI の検証、パフォーマンスとセキュリティのベストプラクティスを説明します。エンドポイントの設計またはレビュー時に読んでください。
  • references/tooling-ci-and-troubleshooting.md — 3 つのツールの機能、CI/CD と pre-commit への統合、ベストプラクティスとアンチパターンのチェックリスト、トラブルシューティング表、成功基準、CLI フラグの詳細を説明します。ツールをパイプラインに組み込むとき、またはデバッグするときに読んでください。
  • references/rest_design_rules.md — REST 設計ルールの詳細なリファレンスです(リソースとアクションの違い、HTTP メソッドのセマンティクスと実例)。ルールを詳しく調べるときに読んでください。
  • references/api_antipatterns.md — よくある API のアンチパターン(動詞ベースの URL/RPC の罠など)を、悪い例・良い例と推奨される修正方法とともに説明します。既存 API の設計上の問題を監査するときに読んでください。

対象範囲と制限事項

このスキルで対応すること:

  • OpenAPI 3.x および Swagger 2.0 の JSON 仕様を、REST の規約に照らしてリンティングする
  • 2 つの仕様バージョン間における、破壊的変更、破壊的変更の可能性がある変更、非破壊的変更を検出する
  • 一貫性、ドキュメント、セキュリティ、使いやすさ、パフォーマンスの観点から API 設計の品質を評価する
  • 破壊的変更が見つかった場合に、実行可能な移行ガイドを生成する

このスキルで対応しないこと:

  • 実行時の API テスト、負荷テスト、コントラクトテスト(api-test-suite-builder を参照)
  • GraphQL、gRPC、WebSocket の API 設計レビュー
  • コードやサーバースタブからの OpenAPI 仕様の自動生成
  • 認証フローの実装、OAuth サーバーの設定(engineering/ の senior-security を参照)

統合ポイント

スキル統合内容データフロー
engineering/api-test-suite-builderリンターの検出結果からテストケースを生成するリンターの問題点を、エンドポイント検証のテスト計画における優先順位に反映する
engineering/changelog-generatorリリースノートに破壊的変更を記録する破壊的変更検出器の出力から、変更履歴向けの構造化された変更データを取得する
engineering/ci-cd-pipeline-builderAPI 品質をデプロイのゲート条件にするスコアカードの評価とリンターの終了コードを、パイプラインの品質ゲートとして統合する
engineering/senior-backendAPI の実装を設計と照らしてレビューするスコアカードの推奨事項を、バックエンドのリファクタリング方針の判断に活用する
engineering/code-reviewerAPI 分析で PR レビューを充実させるリンターと破壊的変更のレポートを、PR レビューのコメントに添付する
engineering/release-managerバージョンの更新が変更の重大度に合っているか検証する破壊的変更検出器の重大度レベルを、セマンティックバージョニングに基づくバージョン判断に反映する

コメント