Wil*_*iss 11 content-type ruby-on-rails
到目前为止,我已经找到了两种request.format.json?在Rails中成为现实的方法(即传入请求被视为JSON).一种是如果您请求资源而.json另一种是Accept: application/json在您的请求中提供标头.每件作品都是独立的.
我想为第二种情况注册我自己的"接受"类型:
Accept: application/vnd.myapp_v1+json 并将其作为"json请求"处理为rails application/json,而无需追加.json.
我的第一个想法是将我自己的MimeType注册为:json(在我的初始化代码中),但这实际上会破坏对application/json的支持,而不是我想做的事情.
Mime::Type.register "application/vnd.myapp_v1+json", :json # my failed attempt
Run Code Online (Sandbox Code Playgroud)
另一种方法是:
api_mime_types = %W(
application/vnd.api+json
text/x-json
application/json
)
Mime::Type.unregister :json
Mime::Type.register 'application/json', :json, api_mime_types
Run Code Online (Sandbox Code Playgroud)
在initializers/mime_types.rb.
我们在我们的应用程序中使用before_filter将iPhone请求移动到HTML,如下所示:
before_filter :determine_format
def determine_format
request.format = :iphone if (request.env["HTTP_USER_AGENT"] =~ /iPhone/ && request.format == :html)
end
Run Code Online (Sandbox Code Playgroud)
我想你可以用你的特定格式做类似的事情,也许是这样的:
def determine_format
request.format = :json if (request.format == 'application/vnd.myapp_v1+json')
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2341 次 |
| 最近记录: |