当前位置:  开发笔记 > 编程语言 > 正文

使用CakePHP中的RESTful api防止默认视图

如何解决《使用CakePHP中的RESTfulapi防止默认视图》经验,为你挑选了1个好方法。

我正在按照CakePHP书中的教程来解释设置RESTful Web服务的基础知识.

到目前为止,我已将路由文件更新为以下内容:

Router::mapResources('stores');
Router::parseExtensions('json');

我还在app/layouts/json和相应的json视图中设置了一个空白布局.当我导航到controller/action.json时,我成功地收到了json输出

我想知道,如果没有.json扩展名,它会尝试加载常规视图.我期待构建一个只有json输出的纯api,有没有办法阻止常规渲染输出?



1> Reuben..:

如果您能够以另一种方式识别JSON请求,则可以将渲染强制为JSON.例如,如果Accepts HTTP标头包含application/json,则可以将其放在控制器中:

public function beforeFilter(){
    if ($this->request->accepts('application/json')) {
        $this->RequestHandler->renderAs($this, 'json');
    }
    parent::beforeFilter();
}

它是CakePHP 2.0表示法,但CakePHP 1.2和1.3可能存在类似的东西.

您也可以检测请求Content-Type,或者也可以检测,尤其是在未使用Accepts的情况下.

推荐阅读
臭小子
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有