どうも、とがみんです。
以前の記事で、「Scaffolding機能」によるCRUD処理を実装した簡単なアプリケーションについて作成しました。
Scaffolding機能を使用して作成したアプリケーションのroutes.rbファイルを見てみると、以下のように記述されています。
resourcesは「RESTfulなインターフェイス」を定義するメソッドで、この記事では、「RESTfulなインターフェイス」とは何か、
また、resourcesメソッドは何をしているのかについて紹介していきます。
RESTfulインターフェイスとは?
「RESTfulなインターフェイス」とは、RESTの特徴を備えたルートのことを言います。
「REST」とは、「REpresentational State Transfer」の略で、分散システムにおいて、複数のソフトウェアを連携させるのに適した設計における原則の集合のことを言います。
そして、その原則に従っているアーキテクチャをRESTFulと表現します。
REST提唱者がその設計原則として、以下の4つの項目を定めています。
- すべての情報は汎用的な構文で一意に識別される。URLとリソースは1対1で関連づけられる。
- セッションなどの状態を表すデータを保持せず、入力の内容によってのみ出力が決定される。やり取りされる情報は、それ自体で完結し、解釈できる。
- インターフェースの統一がされている(GETやPOST等のHTTPメソッド)
- 処理結果がHTTPステータスコードで通知されること
Ruby on Railsでは、原則として、RESTfulなインターフェイスに沿ってルートを設計するのが基本であり、ビューヘルパーなどの機能も、RESTfulなインターフェイスを前提として機能設計されています。
resourcesメソッドについて
resourcesメソッドを利用することによって、以下のルートが全て実現されます。
URL | アクション | HTTPメソッド | 役割 |
---|---|---|---|
/users | index | GET | ユーザー一覧画面 |
/users/:id | show | GET | 個別ユーザー詳細画面 |
/users/new | new | GET | 新規ユーザー登録画面 |
/users | create | POST | 新規ユーザー登録画面からの入力を受けてからの登録処理 |
/users/:id/edit | edit | GET | 既存ユーザー編集画面を生成 |
/users/:id/ | update | PATCH/PUT | 編集画面からの入力を受けて更新処理 |
/users/:id | destroy | DELETE | 一覧画面で選択されたデータを削除 |
resourcesメソッドで生成されたルートの確認
以下のコードで、どのようなルートが生成されているのかを確認します。
ブラウザから以下のURLにアクセスすることによって、確認することができます。
まとめ
RESTfulインターフェイスとは何か、また、resourceメソッドについて紹介しました。
参考文献
>Ruby での REST (REpresentational State Transfer) を理解する