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-ControlETag をそのまま使えるので、CDNやブラウザに任せやすいです。
  • 統一インターフェース:どのリソースも同じやり方(URL+メソッド+表現)で扱えるため、利用側の学習コストが下がります。

向いている場面・向いていない場面#

外部公開API、社内のWebサービス間連携、フロントエンドとバックエンドの通信など、HTTPの恩恵を受けたい大半の場面で素直な選択肢になります。一方、双方向の常時通信や、極端に低レイテンシを求めるサーバー間通信では、WebSocketやgRPCなどのほうが向きます。

「迷ったらRESTで始めて、足りなくなったところを別の手段で補う」くらいの距離感が、現実的な落としどころです。