使 JSON 成为 Resetler 中的默认格式?

Make JSON the default format in Resetler?

我将在此处查看 Restler 的教程示例:http://restler3.luracast.com/examples/_003_multiformat/readme.html

虽然它指出:

First format specified in Restler::setSupportedFormats is used as the default format when client does not specify the format.

我发现这不是真的。虽然我有:

use Luracast\Restler\Restler;
$r = new Restler();
$r->setSupportedFormats('JsonFormat', 'XmlFormat');
$r->addAPIClass('BMI', '/api/data/bmi');
$r->handle();

这与示例页面上给出的代码完全相同,但是当我访问 /api/data/bmi 时,它给出的是 XML 而不是 JSON.

我不得不去 /api/data/bmi.json 获取 JSON 格式。 'JsonFormat' 这里不是 setSupportedFormats() 的第一个参数吗?为什么 JSON 不是默认格式?如何设置为默认值?

我猜您已经尝试过使用网络浏览器调用 api。浏览器发送一个接受 header,其中 html 和 xml 被接受,这就是默认呈现 xml 的原因。尝试使用 curl

不接受 header 调用它

我总是通过将此行放入 index.php:

来获得 JSON 输出
use Luracast\Restler\Format\JsonFormat;