All Articles

RESTってなに?

はじめに

RESTって言葉は良く使うし、耳にするけど、正直イマイチ理解するに至ってなかったので自分が学んだことの整理がてらに記事を書いています。(間違いなどありましたらどんどんご指摘ください)

RESTとは

Representational State Transferの略で、Webの設計思想(規約)のことです。URIにHTTPメソッドでアクセスすることによってデータの送受信を行います。 そのRESTに従って設計されたシステムのことをRESTfulと呼びます。

設計の原則

ステートレスなクライアント/サーバープロトコル

つまり、状態を保持しないようになっています。例えば、サーバーがクライアントサイドとのセッション情報を保持しないようにするなどです。 ステートレスにすることのメリットとしては、

  • サーバー側の実装を簡略化できる。
  • 処理がシンプルになる
  • (やや冗長にはなるが)ライアントのリクエストは状態に依存せず、常にリソースに対する操作に必要十分な情報となる

参考:ステートフル ステートレスとはどういうことか

同じURLからは同じ結果が得られる

URLによって一意的なアドレスになります。RESTにおいてはURLはあくまでなんのリソースかという情報のみを持つことになります。 https://www.hoge.com/users/fred このようにリソースの情報のみを入れるためgetやdeleteなどの動詞はURLに含めず、名詞で構成されることが多いです。

すべての情報に適用できるHTTPメソッドのセット

ですが、これでは取得するのか新規作成なのか削除なのかわかりません。 ここでhttpのリクエストメソッドを使います。代表的なリクエストメソッドは4つあります。

メソッド 内容
GET 取得
POST 追加
PUT 更新
DELETE 削除

一意に定められたアドレスに対してこれらのメソッドを用いて操作することで、一つのURLで済んでいます。

まとめ

これら以外にもメリット・デメリットはありますが今回は代表的なものだけまとめてみました。 ざっくり言うとRESTはこんな感じの設計思想だってことですね。