LoginSignup
0
0

More than 1 year has passed since last update.

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

Last updated at Posted at 2020-12-20

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

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

参考

0
0
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
0
0