- API用に最適化したControllerを自動生成するツールです。
- controllerのresponseデータを、Modelで定義したカラムやメソッドに限定できます。
- requestのURLオプションにincludesを加えると、Railsの関連情報もまとめて取得できます。
① Controller 設定
② Model 設定
class MODEL module Scope extend ActiveSupport::Concern include IndexAndShow::Document
# index を取得するものを設定
INDEX_SELECTS = %w(id me) # DBカラム
INDEX_METHODS = %w() # メソッド
# show を取得するものを設定
SHOW_SELECTS = %w(id me) # DBカラム
SHOW_METHODS = %w() # メソッド
# copy 時にコピーするDBカラム
COPYATTRIBUTES = %w(me)
# クッキーから取得できるものを制限
included do
# for cookie
scope :cookie_scope ,->(u){ where(unit_id: u.id) }
end
end
③ リクエスト
-
URL - GET ./v1/objects.json # index GET ./v1/objects/:id.json # show POST ./v1/objects.json # create PUT ./v1/objects/:id.json # update DELETE ./v1/objects/:id.json # destroy POST ./v1/objects/:id/copy.json # copy
-
パラメータ - index、show にアクセスする時以下のパラメータが使用できる
includes: 関連を取得、複数取得する時はカンマ(,)区切り、多段の時は「->(..)」で指定して取って来れる ex. includes=unit includes=replies->(reply_answers,reply_integers)