435 文字
2 分
RESTとはどんな考え方なのか
REST(REpresentational State Transfer)は、Roy Fielding が博士論文の中で整理した、Webの仕組みに素直に乗ったAPI設計スタイルです。HTTPの上で動くことが多いので、HTTPの語彙を最大限活かす書き方、と捉えると理解しやすいです。
中心にあるのは「リソース」と「動詞」
RESTでは、扱う対象を リソース と呼び、URLで一意に識別します。リソースに対して何をするかは HTTPメソッド で表現します。
| メソッド | 役割 | 例 |
|---|---|---|
| GET | 取得 | GET /users/123 |
| POST | 作成 | POST /users |
| PUT | 置換(全更新) | PUT /users/123 |
| PATCH | 部分更新 | PATCH /users/123 |
| DELETE | 削除 | DELETE /users/123 |
URLが「何を」、HTTPメソッドが「どうするか」を担当する、と覚えると整理が楽です。
RESTらしさを支える性質
- ステートレス:サーバーはリクエスト間でクライアントの状態を覚えていません。必要な情報は毎回リクエストに含めます。
- キャッシュ可能:HTTPの
Cache-ControlやETagをそのまま使えるので、CDNやブラウザに任せやすいです。 - 統一インターフェース:どのリソースも同じやり方(URL+メソッド+表現)で扱えるため、利用側の学習コストが下がります。
向いている場面・向いていない場面
外部公開API、社内のWebサービス間連携、フロントエンドとバックエンドの通信など、HTTPの恩恵を受けたい大半の場面で素直な選択肢になります。一方、双方向の常時通信や、極端に低レイテンシを求めるサーバー間通信では、WebSocketやgRPCなどのほうが向きます。
「迷ったらRESTで始めて、足りなくなったところを別の手段で補う」くらいの距離感が、現実的な落としどころです。