我正在使用 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/