Codeigniter API错误返回

时间:2013-01-13 11:02:08

标签: api codeigniter rest php

您有任何使用Phil Sturgeons RESTFUL库进行codeigniter的经验。我决定为我们的数据库创建一个Web服务,以便从多个应用程序提供对数据库的访问。该网站目前在Codeigniter中开发,因此它是使用其余API库的简单解决方案。

我遇到的问题是我试图在出现问题时返回特定错误。

目前我故意回复错误:

require(APPPATH . 'libraries/REST_Controller.php');

class Settings_api extends REST_Controller {

    function settings_get()
    {
        $this->response(NULL, 404);
    }
}

如果我直接访问url然后我只是收到一个空白页面,如果我用消息替换'NULL',我可以返回一条消息,但没有什么可以说它是404错误而如果我通过php使用以下

$user = json_decode(file_get_contents('http://www.example.co.uk/api/settings_api/settings/'));

echo $user;

然后它显示以下行

Message: file_get_contents(http://www.example.co.uk/api/settings_api/settings/) [function.file-get-contents]: failed to open stream: HTTP request failed! HTTP/1.1 404 

在这两种情况下,我都希望返回404错误以及我提供的消息。这是否可能,如果是这样,你能指出我正确的方向。

由于

1 个答案:

答案 0 :(得分:2)

由PHP生成的错误消息,据我所知,你无能为力(除了使用@运算符,我不推荐)。因此,您唯一的选择是手动检查file_get_content()的返回值:

$response = file_get_contents('http://...');

if ($response === false) {
    // return whatever you feel is appropriate
} else {
    $user = json_decode($response);
    echo $user;
}

修改
在Stackoverflow上找到了这个answer here,这就是你要找的东西。