Bonjour,
Cela fait 5 jour que je cherche à créer une API pour mon site sous cakephp. Quelqu'un peux il m'aider ??
Je suis justement en train de réfléchir à ça. En fait, je dirais qu'il faut coder son Controller et ses actions normalement mais qu'il faut retourner du JSON au lieu d'une vue HTML.
La question est surtout Dois je faire une api pour le mobile et un site pour le web, ou bien l'api va être utilisée pour les 2? Sachant qu'une api peut être plus restrictive que l'application cela pourrait poser problème.
Bonjour,
Je ne saurais pas exactement comment vous expliquer comment créer une API avec CakePHP car il y a beaucoup de chose à prendre en compte donc voici quelques pistes :
Les bonnes pratiques de la création d'une API (Anglais) :
Regardez de ce côté là déjà car cela suffit largement à mettre en place une API "basique" (c'est à dire sans système de gestion utilisateur login/mdp sécurisé) ... N'hésitez pas à évoquer ici les éventuels problèmes rencontrés je tacherais de répondre dans la mesure de mes compétences :)
Bon dev' ;) et n'oubliez pas : Google est votre ami :P create + restful + api + cakephp ... et ses variantes ;) ]
Shadow
L'idéal est d'avoir un tableau dans un premier temps...
Pour un retour JSON :
return json_encode($mon_tableau);
Pour un retour en XML il me semble que cela fonctionne (CakePHP Cookbook) :
$xml = Xml::build($mon_tableau);
(cf. : Xml - CakePHP Cookbook)
En espérant que cela réponde à ton problème...
Shadow
Pour avoir une api sous CakePHP, il faut déjà que les controller ne renvoient pas de layout ou de vue.
Pour cela il faut les désactiver dans le beforeFilter du AppController si ou veut généraliser ce comportement ou uniquement dans celui du Controller souhaité avec
$this->autoRender = false;
Ensuite, tu formates un tableau php contenant ce que tu veux envoyer
$response = array(
'data' => 'mes super datas'
);
et tu envois la réponse au format json
$this->response->body(json_encode($response));
$this->response->type('json');
L'appli qui callera ton webservice récupèrera du json. A elle après de le parser pour récupérer ce qu'elle veut.
J'ai de la peine a comprendre qqun peux m'aider sur skype ?? Si oui --> Redkill2108
La grande question et sans doute pas simple à appréhender sera de sécuriser l'API si on souhaite filtrer les requêtes... php sait travailler avec des wsdl ?
De plus, normalement on met le flux dans une enveloppe soap , il faut également un client pour le webservice.
En jee on les génère , je sais pas si une même méthode existe en php ..
Attention cependant, l'architecture SOA n'est pas simple à appréhender au première abord , en revanche elle est vraiment interessante:p