3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【基礎知識】RESTとは

Last updated at Posted at 2019-07-27

#はじめに
RESTの概念についてはWEBの基礎知識を勉強する中で知りましたが、非常に理解に苦しみました。ということで自分用のメモ+同じことで「???」となっている方の助けになればいいなぁという思いでまとめます。

#本題:RESTとはなんなのか

REpresentational State Transferの略で、WEBにおける設計思想のことです。
この設計思想は以下の4つの項目から成り立っています。

###①全てのリソースに一意なURLでアクセスできる

全てのアクセスの目的語をリソースとして定義し、
その全てのリソースに一意な識別子を持たせることで、
リソースそれぞれにアクセスができます。

リソースってそもそもなんなの?というと、
このQiitaにあるそれぞれの記事だったり、通販サイトの各商品だったり、
情報ひとかたまりを指します。

通販サイトを例にとると、
その通販サイトが持つすべての商品を"items"というリソースとして定義し
その服に1,2,3...15といった識別子をそれぞれ一つずつ持たせる、ということです。

###②HTTPメソッドベースでリソースにアクセスする

識別子をもったリソースにアクセスするときには、
HTTPメソッドGET、POST、PUT、DELETEのいずれかの方法を利用します。
この4つのメソッドにより、リソースに対して何らかの操作を行うのです。

HTTP メソッド リソースに対して行う操作
POST リソースの作成
GET リソースの取得
PUT リソースの更新
DELETE リソースの削除

###③ステートレスである
クライアント側とサーバ側のやりとりは一回ごとに完結し、状態管理を行いません。
このおかげで、同じリクエスト(あるリソースに、あるメソッドでアクセスする)に対するレスポンス(アクセスした結果)は常に同じになります。

例えば、通販サイトの商品の一つを閲覧したいとします。
このリソースへのURLは ”http:///通販.com/items/1”、
閲覧の場合、HTTPメソッドにはGETが使われます。

このページにアクセスするまでに、クライアント側でどのようなリクエスト・レスポンスが行われていたとしても、GETメソッドでhttp:///通販.com/items/1にアクセスした場合は商品の閲覧ページが表示される、ということです。

###④リソースへの接続性

各リソースに接続できることです。(そのまま)
ユーザがすべてのURLを知っている必要はありません。
実際、「あの通販サイトのあの商品はこのURLだったよね。。。」といちいち覚えることはできないですよね。
次の情報にアクセスするためのURLをハイパーリンクの形でクライアント側に伝えることで、
ユーザが各リソースに(いずれかのHTTPメソッドで)アクセスすることができます。

##おまけ:RESTfulなサービスとは

上記RESTの考え方に基づいて設計されたサービスを指します。

##最後に

以上、RESTの概念についてまとめてみました。
お気軽にご指摘やコメントをいただけたら幸いです!

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?