RESTのメリット

  • アプリケーション中のリソースが、URIで示せる
    • アドレスバーに入力すれば、そのリソースを参照できる
  • ステートレスにすることで、スケーラビリティが向上
  • 統一されたインターフェース
    • シンプルで一貫性のある設計
  • HTTPプロトコルやブラウザなどの機能を最大限に活かせる
    • キャッシュとかハイパーリンクとかブックマークとか

RESTの制約メモ

サーバーサイドをステートレスにする
cookieによるセッション維持を行わない
同じURLやパラメータの組み合わせからは、常に同じ結果が返される事が期待される
システムの状態やセッションに依存しない


HTTPメソッドは、リソースをどのように操作したいかを表す
URLはリソースの名前を表す
ハイパーリンクにできるURL構造にする
HTTPメソッド操作API例URI例
GETリソースを取得する顧客データを全て取得する/api/customers
GETリソースを取得するIdと一致する顧客データを取得する/api/customers/{id}
POSTリソースを新たに追加するIdと一致する顧客データを更新する/api/customers/{id}
PUTリソースを更新する顧客データを追加する/api/customers
DELETEリソースを削除するIdと一致する顧客データを削除する/api/customers/{id}

POSTは他のメソッドがうまく当てはまらないような「非標準の振る舞い」に使う事もある。


APIの処理の結果は、ステータス・コードで表す
ステータスコード意味レスポンス例レスポンスボディ
200 OKリクエストが成功し、要求に応じてリソースがBodyに格納される顧客データの取得・削除に成功した場合対象となる顧客データが格納される
201 Createdリソースの作成に成功したことを表す。新しいURLは、ヘッダ「Location」に入る顧客データの追加に成功した場合追加した顧客データが格納される(ヘッダのLocationには、追加した顧客データを表すURLが格納される)
200 OKリクエストが成功し、要求に応じてリソースがBodyに格納される顧客データの更新に成功した場合
404 Not Foundリソースが見つからないことを表す顧客データが存在しない場合
400 Bad Requestリクエストが不正であることを表すリクエストに検証エラーが存在する場合検証エラー情報が格納される
500 Internal Server Errorサーバ内部でエラーが発生したことを表すメソッド内で例外が発生した場合エラー情報が格納される


クライアントのキャッシュが有効に利用できるようにする
以下のような設定で、全てのキャッシュを破棄してしまうような事を強要しない
Cache-control: no-cache



コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

管理人/副管理人のみ編集できます