1

我正在考虑在此处使用 REST 插件:https ://github.com/kvz/cakephp-rest-plugin以提供可用于开发 PhoneGap 应用程序的 API。

我已经设法按照文档中所示设置插件,但是我的 JSON 中没有返回任何数据......我在这里看到了一些提到相同问题的问题:https ://github.com/kvz/ cakephp-rest-plugin/issues?state=closed我尝试实施但无济于事。

有没有人自己遇到过这个问题?该插件已经一年没有更新了,所以我想知道 Cake 的内部工作是否发生了变化,导致它崩溃了?

无论如何,这是我的代码:

// UsersController
public $components = array (
        'Rest.Rest' => array(
            'catchredir' => true,
            'actions' => array(
                'extract' => array(
                    'test' => array('users'),
                ),
            ),
            'ratelimit' => array(
                'enable' => false
            )
        ),
    );

public function test(){
        $users = array(
            array('name' => 'user-1'),
            array('name' => 'user-2'),
            array('name' => 'user-3')
        );
        $this->set(compact('users'));
    }

在我的路线中:

Router::mapResources(array('users'));

Router::parseExtensions('rss','json','xml');

这是返回的 JSON:

{
    "data": {
        "User": []
    },
    "meta": {
        "status": "ok",
        "feedback": [],
        "request": {
            "http_host": "sample.com",
            "http_user_agent": "Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_8_2) AppleWebKit\/537.22 (KHTML, like Gecko) Chrome\/25.0.1364.29 Safari\/537.22",
            "server_addr": "##.##.###.###",
            "remote_addr": "##.###.###.###",
            "server_protocol": "HTTP\/1.1",
            "request_method": "GET",
            "request_uri": "\/users\/test.json",
            "request_time": 1357946870
        },
        "credentials": {
            "class": null,
            "apikey": null,
            "username": null
        },
        "time_epoch": "1357946871",
        "time_local": "Fri, 11 Jan 2013 15:27:51 -0800",
        "version": "0.3"
    }
}
4

1 回答 1

1

Kevin 的插件是为 Cake 1.3 构建的(我不久前用它构建了一个应用程序)。Cake 2.x 恕我直言,它几乎已经过时了。只有在需要日志记录或速率限制或 http 身份验证时才应使用它。

不久前我回答了一个类似的问题,解释了简化的 REST Cake 2.x 提供: https ://stackoverflow.com/questions/10099449/creating-a-rest-api-with-cakephp/10099878#10099878

更新:在设置中检查您的提取数组。格式随着上一个 1.3 版本而改变,但部分 readme.md 没有得到更新(即 tweets 示例是错误的)。请参阅“警告 - 向后兼容性损坏”部分或仅检查组件源代码$settings数组以获取正确的格式。

适合您的正确格式:

public $settings = array(
    'actions' => array(
        'test' => array(
            'extract' => array('users')
于 2013-01-12T04:43:23.790 回答