RESTについてまとめてみた!!

はじめに

今回はRESTについて学習したのでまとめていきます!!

RESTについて

そもそもRESTとは、webシステムを相互につなぐための設計思想のことです。

これは「REpresentational State Transfer」の略で、
直訳すると「具象的な状態の転送」となります。
少し意訳すると、リソースの「状態」を「明確」にして「転送」するということになります。

そしてREST原則として、次の6つに分けてルールが定められています。

  • クライアント/サーバー
  • ステートレス
  • キャッシュ制御
  • 統一インターフェース
  • 階層化システム
  • コードオンデマンド

詳しく説明していきます!

クライアント/サーバー

クライアントとサーバーを分離する考え方です。
クライアントはwebサイトを表示している端末のPCやスマートフォン
サーバーはwebサイトを提供しているコンピュータになります。

ステートレス

statelessを意訳すると状態を保存しないという意味になります。
サーバー・クライアント間で状態(ログイン状態)を保存しないため、
安全かつサーバーに依存せずにやり取りすることが出来ます。

キャッシュ制御

クライアントにキャッシュさせることが出来るルールです。
通信料が減り、速度や拡張性の向上が期待できます。

統一インターフェース

リソースの操作を統一するというルールです。

階層化システム

各システムをコンポーネントとして階層ごとに分離することを言います。
分離することで処理が遅くなるという弊害もあります。

コードオンデマンド

コードをクライアントに渡し、処理を実行することが出来ます。
サーバーでの処理ではなくなるので負荷を減らすことが出来ます。


以上の6つのルールを遵守して設計されたAPIを「REST API」と言います。
さらにかみ砕くと、

REST APIとは、webシステム間のやり取りを標準化した接続方法

と言えそうです。

URI、HTTPメソッドを定義してみる

movieをリソースとしてCRUD操作を定義すると次のようになります。

URI HTTP method
/movies POST
/movies/hoge GET
/movies/hoge PUT
/movies/hoge DELETE

まとめ

今回はRESTについてまとめてみました。
設計思想があるおかげで実際に作成するときの指針になって便利だと感じました。