【发布时间】:2013-10-26 21:37:28
【问题描述】:
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?
【问题讨论】:
标签: ruby-on-rails json api rest ruby-on-rails-4