我正在按照CakePHP书中的教程来解释设置RESTful Web服务的基础知识.
到目前为止,我已将路由文件更新为以下内容:
Router::mapResources('stores');
Router::parseExtensions('json');
Run Code Online (Sandbox Code Playgroud)
我还在app/layouts/json和相应的json视图中设置了一个空白布局.当我导航到controller/action.json时,我成功地收到了json输出
我想知道,如果没有.json扩展名,它会尝试加载常规视图.我期待构建一个只有json输出的纯api,有没有办法阻止常规渲染输出?
如果您能够以另一种方式识别JSON请求,则可以将渲染强制为JSON.例如,如果Accepts HTTP标头包含application/json,则可以将其放在控制器中:
public function beforeFilter(){
if ($this->request->accepts('application/json')) {
$this->RequestHandler->renderAs($this, 'json');
}
parent::beforeFilter();
}
Run Code Online (Sandbox Code Playgroud)
它是CakePHP 2.0表示法,但CakePHP 1.2和1.3可能存在类似的东西.
您也可以检测请求Content-Type,或者也可以检测,尤其是在未使用Accepts的情况下.
| 归档时间: |
|
| 查看次数: |
2808 次 |
| 最近记录: |