1

ここで REST プラグインの使用を検討しています: https://github.com/kvz/cakephp-rest-pluginで、PhoneGap アプリケーションの開発に使用できる API を提供します。

ドキュメントに示されているようにプラグインをセットアップできましたが、JSON にデータが返されません...ここで同じ問題に言及しているいくつかの問題を見てきました: https://github.com/kvz/ cakephp-rest-plugin/issues?state=closedを実装しようとしましたが、役に立ちませんでした。

誰かがこの問題を抱えていましたか? プラグインは 1 年更新されていないので、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 IMHO によってほとんど廃止されました。ロギング、レート制限、または http 認証が必要な場合にのみ使用してください。

簡略化されたREST Cake 2.xが提供することを説明する前に、同様の質問に答えました :

更新:設定で抽出配列を確認してください。フォーマットは最新の 1.3 バージョンで変更されましたが、readme.md の一部が更新されませんでした (つまり、つぶやきの例が間違っています)。「警告 - 下位互換性の問題」セクションを参照するか、コンポーネントのソース コード$settings配列で正しい形式を確認してください。

正しい形式:

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