REST
REST・・・REpresentational State Transferの略
設計思想のひとつである(家を設計するときに、用途に応じて木造にするのか鉄筋にするのかを考えるのと同じ)
RESTには大事な原則が4つある
- アドレス可能性
- 統一したインタフェース
- ステートレス状態
- 接続性
また似た言葉にRESTful APIというものがあるがこれは単に
以下に示すようなRESTの原則(json形式でやり取り, 決まったメソッドを使う, URIで動くなど)を忠実に守ったAPIのことである
メリット
- クライアント↔サーバ間においてjson形式でやりとりができる
- それまで主流だった思想のSOAPはXML形式という可読性が最悪な形式だった
デメリット
- 行いたい操作・データなどが増えたらその分だけURIを発行する必要があり、管理が大変
- そこで同じURIでも別の操作をできるようにしようと生まれたのがFacebook社が発明したGraphQL
アドレス可能性
URIが指し示す情報がひとつに決まること(まるで住所(address)が特定できれば、ひとつの家にたどり着けるようなもの)
統一したインタフェース
特定の操作をする際には決まったメソッドを使って行うこと
CRUD操作をする際に
- GET
- POST
- PUT
- DELETE
という決まったメソッドを利用しないと、操作ができないようにする
中身は何をしてもいいが、絶対にこの部分は通ってやりとりしろよというイメージ(インタフェース)
ステートレス状態
毎回ちゃんとURIで行いたい操作を指示すること
前回のユーザの訪問時の状態を維持することはなく、毎回リクエストに応じた処理のみを返す(ある意味指示待ち人間に近いかも)
接続性
一つを起点にどんどん広がっていく、次から次へと遷移ができること(webの概念そのもの)