json - 如何将 Drupal 服务默认响应格式更改为 JSON?

标签 json drupal-7 mime-types drupal-modules drupal-services

我正在使用 Drupal 服务和 REST 服务器来提供 API。
以前我只使用 1 种类型的响应 JSON,所以我不需要对 URL 进行额外的扩展“.json”。

现在我必须添加新的格式化程序 XML。
然后问题开始了,所有没有任何扩展名(.json 或 .xml)的 API 都将被设置为 XML 的默认输出。

我尝试追踪这个问题,最后发现相关变量是'rest_server_default_response_format'。
服务模块上的相关代码是getResponseFormatContentTypeNegotiations

所以我有 $mime_candidates[] 值(value)

Array ( [0] => application/xml [1] => text/xml [2] => application/json )

甚至第 87 行的 response_format 已经设置为 json,
但 mimeparse->best_match() 返回 'text/xml'。

覆盖它的最佳方法是什么?
我不认为编辑 getResponseFormatContentTypeNegotiations 是最好的方法。
有没有办法让 best_match 函数更喜欢 JSON 格式而不是 XML 格式?

谢谢你。

最佳答案

最好的方法是在您的请求中使用“接受” header :

Accept: application/json

如果 json 可用,它将被用作响应而不是 xml。

关于json - 如何将 Drupal 服务默认响应格式更改为 JSON?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25868655/

相关文章:

javascript - 修改获取到的JSON数据

mysql - 用于显示完整节点的sql查询

c# - 在 ASP.NET Core 中使用 MimeMapping

javascript - 将 CoffeeScript json 对象数据保存在 Rails 变量中

json - 无法获取 Wordpress JSON

python - Pydantic - 在response_model中使用 "Union"和 "Field"时无法序列化/验证

drupal-7 - 无法使用 drupal 7 简单新闻模块发送新闻通讯

drupal-7 - Drupal 7 : make nodes private (for authenticated users only) visible

internet-explorer-6 - 如果我将/favicon.ico用作image/vnd.microsoft.icon而不是image/x-icon,它将在任何浏览器上中断吗?

file - 表单数据 : wrong Content-Type for . p7m 文件