こんばんは、くぼたです。
今回はRails5の話です。
めちゃくちゃ今更感がありますが、betaも3まできているので、まだまだホットなのかなと思い、取り上げました!
今回はRails5の中でも、新機能の「APIモード」のお話をして行こうかなと思います。
誰もが一度はAPIを作ったことがあると思います。
respond_toで渡す形式を返えたり、など、若干のめんどくささがありました。
そんなわりと気になるレベルのかゆさにとどくのが、今回Rails5で標準搭載された「APIモード」です。
百聞は一見にしかず、さっそく見て行きましょう!
今回の環境は以下の通りです。
・Centos7.0
・Ruby 2.3.0
・Rails 5beta3
(ちなみにrails5はRuby 2.2.0以上が必須です。)
Gemfileに以下を書きます。
gem "rails", "5.0.0.beta3"
そしていつものbundle install !!!
さて、ここからが超大事です!APIモードでアプリを作ります。
何がちがうのか、さらっと見てみましょう。app以下に移動します。

あれ、なんだろう、何かがいつもと違う。。。少ない気がする。。。
試しにAPIモードではないアプリも作ってみました。そしてapp以下を見ると。。。

あ、helpersとassetsだ!!
他にも、bundle install されるGemの数も普通より少なかったり、APIモードは省エネなんですね。
js関連や、css関連、web-consoleやErubisなどなどがないですね。
さて、では実際に動かして遊んでみましょう。
適当にscaffoldします。
bundle exec rails g scaffold Foo name:string age:integer
そしてmigrate
bundle exec rails db:migrate
あ、Rails5からrakeコマンドがrailsに統合されたのでご注意を。
そしてまたまた適当にデータ入れて。。。
そして、rails startします。
bundle exec rails s -b 0.0.0.0
ではアクセスしてみましょう。
するとjson形式で値が返ってきているはずです。
[{"id":1,"name":"adways","age":15,"created_at":"2016-03-11T01:08:45.179Z","updated_at":"2016-03-11T01:08:45.179Z"}]
Controllerを見てみると、デフォルトでrender json: @foos
が書かれているんですね。
ちなみにここのrender jsonを書かなくても一応、同じ値が返ってきます。
しかしステータスコード的には204になっているので、あまりよくないかもしれないですね。
僕の総評としては、やはり無駄な機能を省いているところがすばらしいなと思います。
フレームワークを使っていると、ファイルの数が膨大になり、僕は管理が煩雑によくなってしまうんですが、これくらいシンプルにしてくれるととても助かりますね。
今度自宅で作るwebアプリは、サーバーとフロントを完全に分けて開発したかったので、使ってみようかなと思います。
今度自宅で作るwebアプリは、サーバーとフロントを完全に分けて開発したかったので、使ってみようかなと思います。
今回色々触ってて、またRails5が楽しくなってきたので、次回はActionCableあたりをいじってみようかなと思います。
以上です。
以上です。