もこたんぺ Learning Note

自分が勉強する上でわからなかったことを理解を深めていくためにまとめていく。

現場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はなるべく情報(リソース)の名前を表す形にするという発想で作られている。

参考

第2章 Toyアプリケーション - Railsチュートリアル