search
LoginSignup
0

More than 1 year has passed since last update.

posted at

updated at

RESTについて簡単にまとめてみた

RESTとは

REST(REpresentational State Transfer)とは、Webサービスにおけるアーキテクチャスタイルの一つです。

アーキテクチャスタイルとは

アーキテクチャを決めるための設計指針です。
闇雲に設計せずに指針に沿って設計すればいい感じにできるよ〜、ってやつです。

そもそもアーキテクチャとは構造のことで、実際に具現化されたものを指します。
webで例えるとURLやHTML、ブラウザなどがアーキテクチャに当たります。
そう!今皆さんが開いてるブラウザもRESTに基づいて作られているんです!

家の建築を例に出すと、家の設計指針がアーキテクチャスタイル、トイレや玄関、リビングなどがアーキテクチャに当たります。
更に言えば
「友人を呼んで、ホームパーティに適した家を作りたい」というアーキテクチャスタイル(設計指針)があったとしたら、それに基づきリビングは広くして、テラスもつけて、間取りは南向きにする・・・などのアーキテクチャ(構造)を決める
が建築による設計の流れになります。

このweb版がRESTなんですね〜。

何でRESTを使うと良いの?

  • アプリケーション中のリソースがURIによって参照できる。
  • ステートレスにすることで、スケーラビリティが向上(一番のメリット)
  • シンプルで一貫性のある設計。リソースへの操作はCRUDの4種類という制約
  • 標準的なデータフォーマット(XML/JSON)を扱うことでほかサービスとの連携が容易になる。
  • REST理論に基づいたWEBアプリでは、インターフェースが固定されてるので、互換性の問題が発生しない。

引用元:REST理論をわかりやすく。
https://qiita.com/geshi/items/5275cc9d089105625c5f

ほとんどのWebサービスがRESTを採用しており、互換性に問題が生じません。
多くのWebサービスの目的は「大勢にサービスを使ってもらう」ことです。特に理由がなければ、普及され、洗練された設計指針である「REST」を採用するのが安定なんですかね。

リソース

RESTを語る上で必須になるのがリソースです。
リソースを一言で表現すると「Web上に存在する、名前を持ったありとあらゆる情報」
具体的にはURIのことです。
以下の特徴を持っています。
- リソースとは、Web 上の情報である
- 世界中の無数のリソースは、それぞれ URI で一意の名前を持つ
- URI を用いることで、プログラムはリソースが表現する情報にアクセスできる

以上がRESTの説明でした!

RESTには6つのアーキテクチャスタイルが含まれている

更に深掘ると、実は6つのアーキテクチャスタイルで構成されています。
以下の章で解説していきます。

構成する6つのアーキテクチャスタイル

クライアント/サーバー

クライアントとサーバー間でリソースのやりとりをすることです。
image.png

ステートレスサーバー

サーバーがクライアントの情報を保持しないことです。
情報を保持しないことでサーバーの実装が簡素化します。
image.png

キャッシュ

一度得たリソースをクライアント側で保存し、使い回す仕組みです。
例えば、一度開いたことのあるWebページを再度訪問する時、キャッシュにあるCSSが読み込まれて高速でページが表示される感じです。
image.png

統一インターフェース

リソースをリクエストする際、HTTPメソッドを指定してリソースを限定すること。
つまり、リクエストの際に、URLだけでなくHTTPメソッド(GETやPOSTなど)を指定することができます。
HTTPメソッドは8個しかないシンプルな構造。
image.png

階層化システム

クライアントとサーバー間にプロキシなどの中継サーバーを設置することです。
例えば、ロードバランサーを間に挟むことで、サーバーへの負荷が軽減しリスクを減らすことができます。
image.png

コードオンデマンド

プログラムをクライアントがサーバーから受け取り、クライアント上で実行することです。
JavaScriptやFlashなどがこれに当たります。
都度都度、サーバーに通信することが無く、クライアント側で処理するため、処理の速度が向上します。
image.png

最後まで読んで頂きありがとうございました!

参考

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
What you can do with signing up
0