Hello à tous !
Voilà, j'ai un site sous CakePHP, et je souhaite le porté sur mobile avec Cordova.
Pour récupérer les données je ne pense pas qu'il y ai de soucis grâce à json, mais mon problème est pour insérer des données dans la base de donnée depuis l'application mobile, je ne vois pas du tout comment faire :(

Si quelqu'un à une piste à me donner... ce serait cool :)

(PS: je suis loin d'être un expert en json, alors je ne sais pas trop si c'est de ce côté là qu'il faut chercher)

EDIT: De ce que j'ai lu et cru comprendre, il faut jouer avec un webservice REST. J'ai regardé la doc, mais je ne vois pas comment communiquer avec sur mon appli Cordova :/

7 réponses


Bonjour,

je ne comprends pas trop où est le problème, si tu es capable de récupérer des informations en JSON de CakePHP vers ton application mobile, tu devrais être capable de faire l'inverse.

Une communication REST se fait toujours de client vers serveur (sauf pour le système de push, mais ce n'est pas la question pour le moment).

Les urls que je t'ai donné sont a titre d'exemple, et pour simplifier la compréhension par l'utilisateur du site et de l'application. Le serveur, va lui chercher à voir le type de requête (GET, POST, PUT, DELETE) fournie dans le header de la requête HTTP.

Pour la communication, que ce soit pour la récupération d'informations du server vers le client, ou pour l'envoi d'informations du client vers le serveur, il est en effet recommandé d'utiliser le format JSON car facilement parsable et assez léger, donc les coûts de communication sont faibles.

Je ne sais pas si j'ai pu répondre à toutes tes interrogations, donc je t'invite à poser toutes les questions qui te viennent à l'esprit suite à ce post.

reivaxui
Auteur

Alors en fait je galère plus que ce que je pensais avec json :D (si jamais vous aviez des tutos, ce serait avec plaisir... ^^)

Ensuite, je me pose quelques questions :
1) Quand je fais ma fonction pour appeler mon json, il faut bien que je mette l'url de mon fichier .json ?

url:'http://monsite.com/annonces/index.json',
type:'GET',

Ca doit bien ressembler à ça ?

2) Pour passer du GET, je me dis qu'il faut bien s'identifier par rapport au serveur avant, non ?

Dites moi si j'ai tout faut... x)
Je vais tâcher de trouver des tutos sur json pour maitriser car là je suis un peu perdu !

Merci d'avance

Ce que je t'invite à faire, c'est de regarder le fonctionnement des API de grands sites : https://dev.twitter.com/docs/api/1.1, http://developers.kippt.com/ pour comprendre comment elles sont designées.

Voici un pdf qui explique assez simplement comment doit être construite une API : http://info.apigee.com/Portals/62317/docs/web%20api.pdf.

1) il faut que tu mettes l'url vers ton action. Ici, je comprends que tu veux aller sur le Controller Annonces, à l'action Index et que tu souhaites obtenir le résultat au format JSON.

2) Pour n'importe quelle action REST (GET, POST, PUT, DELETE) tu vas devoir t'authentifier. Il y a plusieurs moyens, pour une api, le mieux est d'utiliser la basic authentication http://book.cakephp.org/2.0/en/core-libraries/components/authentication.html#choosing-an-authentication-type. Les données d'identifications seront envoyés dans le header de ta requête HTTP.

reivaxui
Auteur

Ca semble plus compliqué que ce que je pensais ^^.
Merci à toi, je vais regarder tout ça de près et je reviens pour vous dire si j'y arrive ou pas ;D

Non ça n'est pas plus compliqué, le tout est de bien comprendre ce qu'est une API. En fait lorsque tu as créé ton application sous CakePHP, tu as "fait une API", sauf qu'au lieu de renvoyer du JSON, tu renvoies une page HTML.

reivaxui
Auteur

En fait, ce que j'ai du mal a comprendre, c'est au niveau client.
Par exemple en js comment je fais pour m'identifier ? Je reste complètement dans le flou :/

Analyses comment c'est fait actuellement avec ton application CakePHP. N'oublie pas que ton navigateur est un client, au même titre que ton application Cordova.