使 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;
我将在此处查看 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;