ものづくりのブログ

うちのネコを題材にしたものづくりができたらいいなと思っていろいろ奮闘してます。

RESTとは…そしてステートフルとステートレスの違いについて

APIの開発とかを手掛けていて、REST?ステートフルとステートレスってなんだ?
…となったので調べてみました。

ステートフルとステートレスについて

ステートフルとステートレスについては結論からいうと、状態を維持する仕組みをステートフル、状態を維持しない仕組みをステートレスと呼ぶそうです。
クライアントとサーバー間のやりとりにはステートフルとステートレスという仕組みがあり、このやりとりを維持するかしないかが違いになります。

ステートフル 前回のデータを保存して、データ保存した内容を処理結果に反映される仕組み
ステートレス 前回のデータを保存しないで、前回のデータを内容に処理結果に反映させない仕組み

RESTについて

REpresentational State Transferの略で4つの設計原則があるようです。

  1. セッションなどの状態管理を行わない。(ステートレス)
  2. 情報の操作(取得、作成、更新、削除)は全てHTTPメソッド(GET、POST、PUT、DELETE)を利用する。
  3. すべての情報は汎用的な構文で一意に識別される。(URLやURIなど)
  4. 情報の内部に、別の情報や(その情報の別の)状態へのリンクを含めることができる。
RESTではないアプリケーションの例
処理内容 URL HTTPメソッド
レコード作成 /create POST
レコード取得 /record/1234 GET
レコード削除 /delete_record/1234 GET
レコード編集 /edit_record/1234 GET
RESTなアプリケーションの例
処理内容 URL HTTPメソッド
レコード作成 /record POST
レコード取得 /record/1234 GET
レコード削除 /record/1234 DELETE
レコード編集 /record/1234 PUT