ruby-on-rails - rails : how to treat alternative Accept: content-types as JSON?

标签 ruby-on-rails content-type

到目前为止,我已经找到了两种在 Rails 中使 request.format.json? 为 true 的方法(即传入请求被视为 JSON)。一种是您请求资源并以 .json 结尾,另一种是您在请求中提供 header Accept: application/json。每项工作都是独立的。

我想为第二种情况注册我自己的“接受”类型:

接受:application/vnd.myapp_v1+json 并让 Rails 将其视为“json 请求”,如 application/json,无需附加 .json

我的第一个想法是将我自己的 MimeType 注册为 :json (在我的初始化代码中),但这实际上会破坏对 application/json 的支持,而不是我想要做的。

    Mime::Type.register "application/vnd.myapp_v1+json", :json  # my failed attempt

最佳答案

替代方案是:

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

initializers/mime_types.rb中。

关于ruby-on-rails - rails : how to treat alternative Accept: content-types as JSON?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9388082/

相关文章:

ruby-on-rails - 使用JBuilder在Rails中创建嵌套的JSON输出

javascript - 从表单文本字段检索值并使用 RJS 在另一个表单文本字段中设置该值

http - 未指定此类 header 时,浏览器如何知道内容类型?

java - 接口(interface)/枚举列出标准 mime 类型常量

c# - 如何向 webapi 询问特定的内容类型

ruby-on-rails - 将通知存储给用户的数据库设计

ruby-on-rails - 如何为集合设置 Rails 表单选择

http - RESTfully 请求表示的子部分具有特定的内容类型

ruby-on-rails - 更新属性后不保存 ActiveRecord

jsp - 在 JSP 中设置 Content-Type 和 Status-Code