【FuelPHP 1.7】谈谈Rest控制器的输出格式
我是网络团队的 Kusakabe。
我将写一个关于使用 FuelPHP (1.7) 的 Rest 控制器指定输出格式的故事。
指定它们的方法有多种,因此请按顺序执行!
默认查看Accept的内容
Rest的默认设置在fuel/core/config/rest.php中描述,输出格式为
'ignore_http_accept' => false, 'default_format' => 'xml',
就变成了。这意味着什么
- 不要忽略请求头中Accept的内容
- 如果未指定格式,则以 XML 格式输出
这就是它的意思。
现在,在这种状态下,如果您使用高级 REST 客户端并在不修改 Accept 标头的情况下发送请求,您将得到
接受: */*
它被解释为“任何格式都可以”→“那么,请使用默认的 XML。”
在这里,在高级 REST 客户端的 headers 字段中,
接受:*/json
如果您编写并请求它,它会显示“JSON”→“请使用 JSON”。
尝试忽略 Accept 的内容。
让我们尝试覆盖配置以忽略 Accept 请求标头内容。
创建fuel/app/config/rest.php 并
return array( 'ignore_http_accept' => true, 'default_format' => 'xml', );
它写成在这种状态下,即使您说“Accept:*/json”,它也会被忽略,并且消息将从“JSON”更改为“XML please”。
通过 URI 指定
如果将 .xml 之类的格式添加到 URI 中操作名称的末尾,则无论配置如何,都将返回该格式。
http://localhost/test/index.xml
由控制器属性指定
控制器的格式属性优先于其他所有属性。
受保护的$format = null;
默认情况下,它设置为 null,但如果您在此处指定格式,它将以该格式返回,而不询问任何问题。
优先事项
综上所述,优先级是
Accept 规范 < URI 规范 < 属性规范
就变成了。
或者更确切地说
都写在文档看来后面的事情进展顺利。
如果您觉得这篇文章有帮助,请点赞!