API設計スキル
RESTful APIの設計を支援するスキル。エンドポイント設計、スキーマ定義、エラーハンドリング、
API設計スキル
概要
RESTful APIの設計を支援するスキル。エンドポイント設計、スキーマ定義、エラーハンドリング、
ドキュメント生成までを一貫して行う。
発動条件
「API設計」「エンドポイント」「REST」「スキーマ定義」「APIドキュメント」に関する依頼を受けたとき。
入力で確認すべき情報
1. **対象リソース** — 何のデータを扱うか
2. **利用者** — フロントエンド / モバイルアプリ / 外部パートナー
3. **認証方式** — JWT / API Key / OAuth 2.0
4. **技術スタック** — Express / Hono / FastAPI / Go 等
エンドポイント命名規則
基本ルール
CRUD マッピング
| 操作 | メソッド | エンドポイント | 説明 |
|------|---------|---------------|------|
| 一覧取得 | GET | `/resources` | フィルタ・ページネーション対応 |
| 詳細取得 | GET | `/resources/{id}` | 単一リソース |
| 作成 | POST | `/resources` | リクエストボディにデータ |
| 更新(全体) | PUT | `/resources/{id}` | 全フィールド必須 |
| 更新(部分) | PATCH | `/resources/{id}` | 変更フィールドのみ |
| 削除 | DELETE | `/resources/{id}` | 論理削除推奨 |
非CRUD操作
レスポンス設計
成功レスポンス
```json
{
"data": { ... },
"meta": {
"requestId": "req_abc123"
}
}
```
一覧レスポンス(ページネーション)
```json
{
"data": [ ... ],
"pagination": {
"page": 1,
"perPage": 20,
"total": 156,
"totalPages": 8
}
}
```
エラーレスポンス
```json
{
"error": {
"code": "VALIDATION_ERROR",
"message": "入力値が不正です",
"details": [
{ "field": "email", "message": "メールアドレスの形式が不正です" }
]
}
}
```
HTTPステータスコード
| コード | 用途 |
|--------|------|
| 200 | 成功(GET / PATCH) |
| 201 | 作成成功(POST) |
| 204 | 成功・レスポンスボディなし(DELETE) |
| 400 | バリデーションエラー |
| 401 | 未認証 |
| 403 | 権限不足 |
| 404 | リソース未存在 |
| 409 | 競合(重複登録等) |
| 422 | 処理不能(ビジネスロジックエラー) |
| 429 | レート制限超過 |
| 500 | サーバー内部エラー |
ページネーション設計
フィルタリング・ソート
バージョニング
セキュリティ
出力フォーマット
1. **リソース一覧**(各リソースの説明と関連)
2. **エンドポイント表**(メソッド / パス / 説明 / 認証要否)
3. **スキーマ定義**(リクエスト / レスポンスの型定義)
4. **エラーコード表**
5. **OpenAPI YAML**(要求があれば生成)