ruby on Rails でAPIサーバー

いろいろあって、忙しさが体感で5倍くらいな感じですが、時間を作っていろいろ触ってゆきます。
今回はRuby on Rails でAPIサーバーを作る方法がわかったのでまとめておきます。

APIサーバーの作成

とはいえ大したことはしないのです。

1
rails new [アプリケーション名] --api

これだけ。

加えて、scaffoldで試しにProductモデルを展開してみます。

1
2
rails g scaffold Product Price:integer Name:string
rails db:migrate

データベースの中に初期値を設定しておきます。
[アプリケーションルート]\db\seeds.rbを以下のように編集します。

[アプリケーションルート]\db\seeds.rb
1
2
3
4
5
6
7
# 省略

Product.create([
{Price:1000,Name:"CPU"},
{Price:2000,Name:"メモリ"},
{Price:4000,Name:"GPU"}
])

[アプリケーションルート]\db\seeds.rbを作成したら、以下を実行

1
rails db:seed

動作確認

rails sを実行し、http://localhost:3000/products にブラウザからアクセスしてみます。

以下のように初期設定した3レコードが表示されるはずです。

1
[{"id":1,"Price":1000,"Name":"CPU","created_at":"2019-09-17T15:47:36.208Z","updated_at":"2019-09-17T15:47:36.208Z"},{"id":2,"Price":2000,"Name":"メモリ","created_at":"2019-09-17T15:47:36.225Z","updated_at":"2019-09-17T15:47:36.225Z"},{"id":3,"Price":4000,"Name":"GPU","created_at":"2019-09-17T15:47:36.228Z","updated_at":"2019-09-17T15:47:36.228Z"}]

http://localhost:3000/products/1にアクセスすれば、以下のように出るはず。

の結果
1
{"id":1,"Price":1000,"Name":"CPU","created_at":"2019-09-17T15:47:36.208Z","updated_at":"2019-09-17T15:47:36.208Z"}

追加、更新、削除の動作確認

ブラウザにURL入力ではgetの確認しかできないので、RESTクライアントを使う。
何を使ってもいいと思うけど、私はRestlet Clientを使っています。

以下のように設定し「Send」で送ると、1レコード追加されます。

クエリパラメータがgetクエリのみたくなりますが、これでOK。

更新と削除もそれ実行できる。
URLとリクエストメソッドがわからなければ、[アプリケーションルート]\app\controllers\products_controller.rbを見るか、rails routesの結果を参照する。

今回はここまで。
夜がすごしやすくなってきました。
もう秋ですね。

ではでは。