現場Rails Chapter6 RESTfulについて
RESTfulの概要について
まずRESTってなに?
REST(REpresentational State Transferの略)とはアプリケーションの設計方法の一つ。
操作の対象となるリソースをURLを使って表し、それに対して、HTTPメソッドの「GET」「POST「DELETE」「PUT」などを使って操作を行うというもの。
インターネットそのものやWebアプリケーションなどの、分散・ネットワーク化されたシステムやアプリケーションを構築するためのアーキテクチャのスタイルの一つ。
RailsアプリケーションにおけるRESTとは
アプリケーションを構成するコンポーネント(ユーザやマイクロポストなど)を「リソース」としてモデル化することを差す。
これらのリソースはリレーショナルデータベースのCRUD操作とHTTPメソッドの両方に対応している。
↓
要するにRESTfulって
用意されたHTTPメソッドを使ってCRUD機能を手軽に操作できる型みたいなものという認識。
RESTfulなスタイルにすることで、作成すべきコントローラやアクションの決定が楽になる。
CRUDを行うリソースだけでアプリケーション全体を構成してしまうこともできる。
もっと具体的に!!!
RESTfulは以下4つに当てはまるもののことをいう。
⑴ HTTPリクエストはそのリクエストで必要な情報をすべて持ち、前のリクエストからの状態が保存されている必要がない。(ステートレスな状態という)
⑵ 個々の情報(リソース)への「操作」の表現がHTTPメソッドとして統一されている。⇦これ一番大事!!
⑶ 個々の情報(リソース)がそれぞれ一意なURI(ここではURLの認識でOK)で表されている。
⑷ ある情報(リソース)から別の情報を参照したいときは、リンクを利用する。
RESTfulの主な特徴
・URLが表す情報のことをリソースと呼ぶ。
(例:「/tasks/13というURLが示しているのは13という一意な識別子を持つtaskのリソースだ。」といった感じ)
・⑵の理由により、RailsではGETやPOST以外にPATCH、PUT、DELETE のサポートもする。
・⑵の理由により、RESTfulなシステムでは、操作はHTTPメソッドで表現するものであり、URLで表現するものではない。
なのでURLはなるべく情報(リソース)の名前を表す形にするという発想で作られている。