Help us understand the problem. What is going on with this article?

そもそも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はこんな感じの設計思想だってことですね。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした