REST APIとは

REST(Representational State Transfer)は、Webサービス間でデータをやり取りするための設計原則です。適切なAPI設計はシステムの保守性と拡張性を大きく左右します。

RESTの6原則

  1. クライアント・サーバー分離
  2. ステートレス(セッション状態をサーバーに持たない)
  3. キャッシュ可能
  4. 統一インターフェース
  5. 階層化システム
  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)でドキュメントを自動生成することで、フロントエンドとの連携がスムーズになります。