Rails のデフォルトのスキャフォールドには、API を公開できるメソッドが含まれており、ユーザーは HTML と JSON の両方を介して同じコントローラーを操作できます。
とを使用して製品モデルの新しい足場を生成するbody
と、次のようになります。url
rails generate scaffold products body:string url:string
# GET /products
# GET /products.json
def index
@products = Product.all
end
HTMLビューだけでなく、次の両方を生成しますindex.json.jbuilder
。
json.array!(@products) do |product|
json.extract! product, :body, :url
json.url product_url(product, format: :json)
end
Rails は明らかに、すべてのコードを自動的に生成して、このモデルを API として公開し、標準の HTML インターフェースを提供できるようにします。
私の質問は次のとおりです。
- このようなものをバージョン化するための推奨される方法は何ですか?
- API を公開するこの方法は本当に期待される方法ですか?
- 私が見つけた他のすべてのリソースは、API アクションを公開するために別の名前空間を持つコントローラーを提案していますが、なぜデフォルト設定で JSON と HTML を公開するのでしょうか?