I’m looking into using the REST plugin here: https://github.com/kvz/cakephp-rest-plugin for providing an API that I can use to develop a PhoneGap application.
I’ve managed to setup the plugin as shown in the documentation, however I’m getting no data back in my JSON… I’ve seen some issues mentioning the same problem here: https://github.com/kvz/cakephp-rest-plugin/issues?state=closed which I have tried implementing but to no avail.
Has anyone had this issue themselves? The plugin hasn’t been updated in a year, so I’m wondering if the inner-workings of Cake have changed causing it to break?
In any case here is my code:
// 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'));
}
and in my routes:
Router::mapResources(array('users'));
Router::parseExtensions('rss','json','xml');
and here is the returned 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"
}
}
Kevin’s plugin was built for Cake 1.3 (I built an app with it a while ago). It’s pretty much been obsoleted by Cake 2.x IMHO. You should only use it if you need logging or rate-limiting or http authentication.
I answered a similar question a while back explaining the simplified REST Cake 2.x provides:
https://stackoverflow.com/questions/10099449/creating-a-rest-api-with-cakephp/10099878#10099878
UPDATE:
Check your extract array in settings. The format changed with the last 1.3 version but part of readme.md didn’t get updated (i.e. the tweets example is wrong). See section “Warning – Backwards compatibility breakage” or just check the component source code
$settingsarray for the correct formats.Correct format for you: