REST APIとは
REST(Representational State Transfer)は、Webサービス間でデータをやり取りするための設計原則です。適切なAPI設計はシステムの保守性と拡張性を大きく左右します。
RESTの6原則
- クライアント・サーバー分離
- ステートレス(セッション状態をサーバーに持たない)
- キャッシュ可能
- 統一インターフェース
- 階層化システム
- オンデマンドコード(任意)
HTTPメソッドの使い方
| メソッド | 操作 | 例 |
|---|---|---|
| GET | 取得 | GET /users/123 |
| POST | 作成 | POST /users |
| PUT | 全更新 | PUT /users/123 |
| PATCH | 部分更新 | PATCH /users/123 |
| DELETE | 削除 | DELETE /users/123 |
URLの設計原則
# 良い例
GET /api/v1/articles
GET /api/v1/articles/42
POST /api/v1/articles
GET /api/v1/users/5/articles # リレーション
# 悪い例
GET /api/getArticle?id=42 # 動詞はNG
POST /api/deleteUser/5 # メソッドと動詞が矛盾
レスポンス設計
{
"data": {
"id": 42,
"title": "REST API入門",
"author": {"id": 5, "name": "山田太郎"}
},
"meta": {
"total": 100,
"page": 1,
"per_page": 20
}
}
HTTPステータスコード
| コード | 意味 |
|---|---|
| 200 | OK |
| 201 | Created |
| 400 | Bad Request |
| 401 | Unauthorized |
| 403 | Forbidden |
| 404 | Not Found |
| 422 | Validation Error |
| 500 | Internal Server Error |
バージョニング
/api/v1/users # URLパス(最もシンプル)
/api/v2/users # 破壊的変更時にバージョンアップ
セキュリティ対策
- 認証:JWT Bearer Token または OAuth 2.0
- レート制限:DDoS対策(例:100回/分)
- CORS設定:許可オリジンを明示
- 入力バリデーション:インジェクション防止
- HTTPS必須:全通信を暗号化
OpenAPI(Swagger)でドキュメントを自動生成することで、フロントエンドとの連携がスムーズになります。





