REST API基礎
Web開発において重要なREST APIの基本的な概念と仕組みについて学んでいきましょう。REST APIを理解することで、Webアプリケーション開発の土台を築けます。
REST APIとは
REST(Representational State Transfer)APIは、Webサービス間でのデータのやり取りを行うためのアーキテクチャパターンです。簡単に言うと、「決まった方法でデータを取得したり送信したりするためのルール」というわけです。
RESTの基本原則
REST APIは以下の重要な原則に基づいています:
- ステートレス:サーバーは前回のやり取りを覚えていません(気楽な関係ですね)
- 統一インターフェース:決まった方法でリソースにアクセスします
- 階層化システム:複数のサーバーを経由しても動作します
- キャッシュ可能:レスポンスをキャッシュして効率化できます
HTTPメソッドの基本
REST APIは主に以下のHTTPメソッドを使ってリソースを操作します:
CRUD操作とHTTPメソッドの対応
| 操作 | HTTPメソッド | 意味 | 例 |
|---|---|---|---|
| Create | POST | 新しいリソースを作成 | ユーザー登録 |
| Read | GET | リソースを取得 | ユーザー情報の表示 |
| Update | PUT/PATCH | リソースを更新 | プロフィール変更 |
| Delete | DELETE | リソースを削除 | アカウント削除 |
実際のAPIエンドポイントの例
GET /api/users # 全ユーザーの一覧を取得
GET /api/users/123 # ID 123のユーザー情報を取得
POST /api/users # 新しいユーザーを作成
PUT /api/users/123 # ID 123のユーザー情報を更新
DELETE /api/users/123 # ID 123のユーザーを削除
見覚えのあるパターンですよね。この一貫性がRESTの魅力です。
ステータスコード
APIからのレスポンスには、処理結果を示すHTTPステータスコードが付きます:
よく使われるステータスコード
- 200 OK:成功
- 201 Created:作成成功
- 400 Bad Request:リクエストが不正
- 401 Unauthorized:認証が必要
- 404 Not Found:リソースが見つからない
- 500 Internal Server Error:サーバーエラー
JSON形式でのデータ交換
REST APIでは、JSONフォーマットでデータのやり取りを行うのが一般的です:
ユーザー情報のJSONレスポンス例
{
"id": 123,
"name": "田中太郎",
"email": "tanaka@example.com",
"createdAt": "2025-01-01T00:00:00Z",
"profile": {
"age": 30,
"city": "東京"
}
}
JSONは読みやすく、JavaScriptとの相性も抜群です(便利ですよね)。
実際のREST APIの例
JSONPlaceholder API
練習によく使われる無料のテストAPIをご紹介します:
GET https://jsonplaceholder.typicode.com/posts/1
このリクエストを送ると、以下のようなレスポンスが返ってきます:
{
"userId": 1,
"id": 1,
"title": "sunt aut facere repellat provident occaecati excepturi optio reprehenderit",
"body": "quia et suscipit\nsuscipit recusandae consequuntur expedita et cum..."
}
やってみよう!
ブラウザで以下のURLにアクセスしてみてください:
- https://jsonplaceholder.typicode.com/posts
- https://jsonplaceholder.typicode.com/users
実際のJSON形式のデータが確認できます。これがREST APIの基本的な動作です。
REST APIの設計原則
リソース指向の設計
- URLはリソース(モノ)を表現します
- 動詞ではなく名詞を使用します
Good: GET /api/users/123
Bad: GET /api/getUser?id=123
ネストしたリソースの表現
関連するリソースは階層構造で表現します:
GET /api/users/123/posts # ユーザー123の投稿一覧
GET /api/posts/456/comments # 投稿456のコメント一覧
認証とセキュリティ
APIキーによる認証
多くのAPIでは、リクエストヘッダーにAPIキーを含めて認証します:
Authorization: Bearer your-api-key-here
リクエスト制限
APIには通常、リクエスト回数の制限(レート制限)があります:
X-RateLimit-Limit: 100
X-RateLimit-Remaining: 99
Note: セキュリティ上、APIキーは環境変数で管理し、コードに直接書かないようにしましょう。
まとめ
REST APIを理解することで、以下のことができるようになります:
ポイント
- REST API: Web上でのデータ交換の標準的な方法
- HTTPメソッド: GET(取得)、POST(作成)、PUT(更新)、DELETE(削除)
- ステータスコード: 処理結果を示す3桁の数字
- JSON形式: APIでのデータ交換の標準フォーマット
- リソース指向: URLはリソース(モノ)を表現する
- ステートレス: サーバーは前回のやり取りを覚えていない
次の記事では、HTTPリクエストとJSONの詳細について学んでいきましょう。実際にブラウザの開発者ツールを使って、APIの動作を確認してみます。