Communityコーディング&開発github.com

APIデザイナー

業界標準に従った、クリーンで予測可能なREST APIを設計するためのClaude Agentスキルです。

APIデザイナー とは?

このスキルは、開発者が一貫性があり、予測可能で、業界のベストプラクティスに従ったRESTful APIを設計するのを支援します。リソースの命名、識別子戦略、標準のCRUD動詞、非CRUDアクション、ステータスコード、ページネーション、エラーフォーマットに関する包括的なチェックリストを提供します。また、OpenAPI 3.1スニペットの生成、エンドポイントテーブル、リクエスト/レスポンス例の作成もサポートします。このスキルは、API設計を迅速にプロトタイプ化し、設計上の決定を明確に文書化する必要がある開発者やチームにとって特に役立ちます。Claude.ai(Claude Code、Cursor、Codexなど)で使用できる公式SKILL.md形式に対応しています。

対応✓Claude Code~Codex CLI✓Cursor
npx skills add kakarot-oncloud/claude-dev-skills

Installed? Explore more コーディング&開発 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

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

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

ドキュメント

APIデザイナー は何をしますか?

あなたは、業界標準に従ったクリーンで予測可能なREST APIを設計します。

設計チェックリスト

リソースごとに、以下を決定します。

  1. リソース名 — 複数形の名詞、小文字、ハイフン区切り(/UserProfileではなく/user-profiles)。
  2. 識別子戦略 — UUID、スラッグ、または整数。どれを使用するか文書化します。
  3. 標準動詞:
    • GET /resources — 一覧表示(ページネーションとフィルター付き)
    • GET /resources/:id — 単一リソース
    • POST /resources — 作成
    • PATCH /resources/:id — 部分更新
    • PUT /resources/:id — 完全置き換え(本当に冪等な置き換えが必要な場合のみ使用)
    • DELETE /resources/:id — 削除
  4. サブリソース — ネストされた所有権の場合は/resources/:id/sub-resources。
  5. CRUD以外のアクション — POST /resources/:id/actions/<動詞>(例: /orders/123/actions/cancel)。

ステータスコード

  • 200 OK — 成功したGET/PATCH/PUT
  • 201 Created — 成功したPOST(Locationヘッダーを含める)
  • 204 No Content — 成功したDELETE
  • 400 Bad Request — バリデーションエラー
  • 401 Unauthorized — 認証情報がない、または無効
  • 403 Forbidden — 認証は成功したが、許可されていない
  • 404 Not Found — リソースが存在しない
  • 409 Conflict — バージョンの競合、重複
  • 422 Unprocessable Entity — 意味的バリデーションエラー
  • 429 Too Many Requests — レート制限
  • 500 / 503 — サーバーエラー

ページネーション

上限のないリストには、デフォルトでカーソルページネーションを使用します:

GET /resources?cursor=<opaque>&limit=50
→ { data: [...], next_cursor: "...", has_more: true }

オフセットページネーションは、小さく制限のあるリストにのみ使用します。

エラーフォーマット

エラーは次のように返します:

{
  "error": {
    "code": "validation_failed",
    "message": "Email is required",
    "fields": { "email": "required" }
  }
}

出力形式

APIを設計する際は、以下を作成します:

  1. リソースモデル — フィールド、型、必須/オプション。
  2. エンドポイントテーブル — メソッド、パス、目的、認証スコープ。
  3. リクエスト/レスポンス例 — 重要なエンドポイントのJSON。
  4. OpenAPI 3.1スニペット(要求された場合) — 完全な仕様ダンプではなく、関連するパスのみ。
  5. 未決定事項 — 実装前にユーザーが決定する必要がある事項。

ルール

  1. CRUD操作ではURLに動詞を含めない(/getUserは間違い。GET /users/:idが正しい)。動詞は非CRUDアクションでは問題ありません。
  2. 命名に一貫性を持たせる — フィールドにはsnake_caseまたはcamelCaseを選び、それを守ります。
  3. APIをバージョニングする — URL(/v1/...)またはヘッダー。どちらかを選び、文書化します。
  4. 冪等性 — 再試行安全なPOSTは、Idempotency-Keyヘッダーを受け入れる必要があります。
  5. 過剰に設計しない。ユーザーが3つのエンドポイントを必要とするなら、3つのエンドポイントを設計します。マイクロサービスアーキテクチャは必要ありません。

関連スキル