我正在使用 Drupal 服务和 REST 服务器来提供 API。
以前我只使用 1 种类型的响应 JSON,所以我不需要对 URL 进行额外的扩展“.json”。
现在我必须添加新的格式化程序 XML。
然后问题开始了,所有没有任何扩展名(.json 或 .xml)的 API 都将被设置为 XML 的默认输出。
我尝试追踪这个问题,最后发现相关变量是'rest_server_default_response_format'。
服务模块上的相关代码是getResponseFormatContentTypeNegotiations
所以我有 $mime_candidates[] 价值
Array ( [0] => application/xml [1] => text/xml [2] => application/json )
即使 response_format 在第 87 行已设置为 json,但 mimeparse->best_match() 返回 'text/xml'。
覆盖它的最佳方法是什么?
我不认为编辑 getResponseFormatContentTypeNegotiations 是最好的方法。
有没有办法让 best_match 函数更喜欢 JSON 格式而不是 XML 格式?
谢谢你。