【初心者向け】RubyonRailsのRestful・リソースについて解説

【初心者向け】RubyonRailsのRestful・リソースについて解説

最近、RubyonRailsで簡単なWebアプリを作成しているmacco(まっこ)です。

今回はRubyonRailsの学習を始めたけど、いまいち「Restful」や「リソース」の意味が分からない初心者のかたを対象に、解説していこうと思います。

本解説に入る前にRubyonRailsについて、簡単に説明します。

RubyonRailsとは、Rubyというプログラミング言語がベースとなっているWebアプリケーションフレームワークになります。

RubyonRailsで構築されている国内サイトとして挙げられるのは、料理レシピコミュニティサイトのクックパッド求人情報ウェブサイトのWantedlyなどがあります。

料理レシピコミュニティサイト「クックパッド」

求人情報ウェブサイト「Wantedly」

対象の読者

  • RubyonRailsを学習サービス(Progate、ドットインストール、Udemy、paizaなど)で学んでいるが、いまいちRestfulやリソースの意味が理解できない
  • RubyonRailsを書籍で勉強している

本記事を読むことで、Restfulの概念やリソースの雰囲気を掴む手助けになれば幸いです。

自己プロフィール

簡単な自己プロフィールを載せておきます。

Restfulとは

RubyonRailsを学習するうえで、欠かせないのは「Restful」の理解です。

一言でいえば、RESTの原則に従って設計されているサービスやシステムを表現します。

では、RESTとはいったい何でしょうか。

RESTとは

RESTとは様々なソフトウェアと連携するために設計されたルールの1つです。

大まかに以下の4つのルールから成り立っています。

アドレス可能性

1つのリソースに対して指定するURIが用意されること

※リソースについては後述します。


ユーザーを一覧で表示するページは「https://test.com/users/index」
ユーザーを新規で登録するページは「https://test.com/users/new」

このように、動作(RubyonRailsではアクションといいます)ごとにURIが割り当てられています。

ステートレス性

通信1つ1つが独立していて、各通信は他通信との関連性がないこと

珈琲ショップでの注文を例に挙げます。

店員「ご注文はいかがなさいますか?」

私「アイスコーヒーのMサイズを1つください」

店員「ミルクはいりますか?」

私「アイスコーヒーのMサイズ1つミルクはいらないです」

店員「シロップはいりますか?」

私「アイスコーヒーのMサイズ1つミルクはいらないです、シロップもいらないです」

分かりにくいと思いますので、補足します。

店員と私のやりとりを1通信とします。

全部で3通信行われていますね?

それぞれの通信は他通信との関連性を持たないため、1通信ごとにアイスコーヒーから指定しています。

これをステートレス(状態を持たない)といいます。

持続性

HTMLやJSON、XMLといったハイパーメディアを扱う

使用しているパソコンの設定などに依存せずに、アプリにリクエストすることができます。

また、標準的なデータフォーマットを扱うことで他ソフトウェアとの連携が容易になります。

統一インターフェース

インターフェースが固定されているため、互換性の問題が発生しない

インターフェースとはアプリやサービスの門のようなもので、データの入出力の部分を表します。

復習すると

Restfulは「RESTの原則に従って設計されているアプリやサービス」

RESTは「様々なアプリやサービスと連携するためのルールの1つ」です。

以上RESTの説明でした。

リソースとは

では次に「リソース」について解説していきます。

RubyonRailsでいう「リソース」とは、HTTP経由で操作するデータ群を指します。

例えば、自分の持っている書籍をRubyonRailsアプリで管理したいとしましょう。

以下のデータを例に考えてみます。

テーブル名:books

idname
1ネットワークを学ぼう
2Rubyを優しく解説

これを「booksリソース」と呼びます。

booksリソースに対して、決められたURLを使ってアクセスし、操作することができます。

次にbooksリソースを操作できるURL一覧を以下に記載します。

No.内容HTTPリクエストURLアクション
1書籍一覧のページを表示するGET/booksindex
2書籍の詳細ページを表示するGET/books/idshow
3書籍の登録ページを表示するGET/books/newnew
4書籍を登録するPOST/books/createcreate
5書籍の内容を更新するページを表示するGET/books/id/editedit
6書籍の内容を更新するPATCH/books/idupdate
7書籍を削除するDELETE/books/iddelete

補足説明します。

HTTPリクエストにある「GET」や「POST」というのは、メソッドといいます。

これはアプリ側にどのようなリクエストをするか決めるものです。

例えばページ自体を取得したい場合はGET、何かデータを送りたい場合はPOSTといった感じです。

次にURLにある「id」は、データのidを指しています。

例えば、先ほど参考例に挙げたテーブル名:booksにある「id=1、name=ネットワークを学ぼう」のデータを示す場合は、id=1になります。

最後です。アクションにある「index」や「show」は、原則7つで構成され、それぞれ役割を持っています。

indexはリソースの一覧を表示、showはリソースの詳細といった感じです。

以下にまとめます、リソースとは

  • HTTPリクエストのメソッドと7つのアクションによって、データを操作する。
  • その操作するデータ群をリソースと呼んでいる。

ということになります。

※ちなみに7つのアクション以外にも、自分独自のメソッドを定義することも可能ですが、必要になったらその都度学んでみてください。

以上でリソースの説明を終わります。

最後に

いかがでしたでしょうか。

このあたりの内容は、色々専門的な知識も必要になったりするので、一度だけではなかなか覚えられないと思います。

しかし、最初は分からなくても継続していけば、だんだんと理解できるようになるのが、プログラミングのいいところです。

ですので、まわりと比較せず、自分で自分の成長を認めてあげてください。

そうすれば、徐々に道は開けてきます。

最後までお付き合い頂きありがとうございました。

プログラミングカテゴリの最新記事