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の結果を参照する。

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

ではでは。