■目次
設計モデル、設計様式、設計思想のこと
複数のアーキテクチャに共通する性質、作法、流儀 = 設計様式(あるあるをまとめたもの)
RESTはアーキテクチャスタイル(複数のアーキテクチャスタイルから成り立つ、複合型のアーキテクチャスタイル)
RESTによる実装例の1つが「Web」
(RESTに関連するアーキテクチャを使って実装したものが「Web」)
REST API = RESTの設計思想に基づいて作られたAPI

https://www.youtube.com/watch?v=Mg83BHYfzSY&list=PLX8Rsrpnn3IVsi0NIDP3yRlFCS0uOZdqv&index=3
リソース:
Web上に存在する、名前を持ったあらゆる情報
URIは「リソースの名前 + 住所」
例)「リソース」:URI
複数のURIを持つリソースも存在する
<aside> 🌿 RESTは複数のアーキテクチャスタイルから成り立つ、複合型のアーキテクチャスタイルだよ
※ 以下6つ全てが揃っている必要はない
</aside>
クライアント / サーバー:UIと処理を分離する
ステートレスサーバー:クライアントの状態をサーバーが管理しない( = 関与しないため、シンプルなアーキテクチャにすることができる)
⇄ ステートフル(例:Cookieを使ってセッション管理している(ログイン機能がある)Web)
キャッシュ:サーバーから取得したリソースの再利用
デメリット:リソースの鮮度が古くなる場合がある → キャッシュの使いどころやリミットを考えて設計しないといけない
統一インターフェース:操作可能なインターフェースを限定(GET / POST / PUT / DELETE •••)
階層化システム:システムを階層に分離(同じ通信プロトコル(HTTP)を使っているから階層に分離できる)