Articles récents
PHP & Android : Créer un web service REST/JSON
Cet article décrit comment créer un web service en REST JSON en PHP. Dans les faits, C'est super-simple, le plus difficile est de bien comprendre les concepts.
Nous reprendrons le client Android de l'article précédent pour tester notre serveur de service! Ce sera un bon exemple d'application client/serveur.
1) Quelques notions
1.1) Les différentes architectures
La première chose avant de commencer est de bien comprendre les notions qui entoure un service web. Il existe trois type de service web : RPC, SOAP et REST.RPC et SOAP sont des architectures de services webs complexes, souvent trouvées dans le monde professionnel sur de gros systèmes d'informations. Généralement, ils sont accompagnés du langage de description WSDL qui permet de proposer une l'annuaire des services du serveur.
Très compliqué à mettre en oeuvre, ces architecture ont rebutés longtemps les développeurs en herbe, c'est pourquoi les fournisseurs de web services ont créé une architecture simplifiée (merci Google...) pour favoriser l’accès aux développeurs à leurs bouquets d'API, il s'agit de l'architecture REST. On parle aussi d'application RESTFULL, il s'agit de la même chose, c'est juste un adjectif.
1.2) L'architecture REST
REST (REpresentational State Transfer) est un type d'architecture que l'on utilise de plus en plus pour réaliser un service web. Il n'est pas définit précisément par un standard. REST est basé sur des requêtes transmises par des protocoles standards (http, ftp, ...), il renvoit un fichier souvent au format XML ou JSON.Un service REST permet de traiter des ressources distantes, pour cela il définit 4 fonctions dites de bases:
On accède aux données via le protocole HTTP par des urls du type: http://www.monexample.com/webservice/data/item1
Il également possible de préciser dans l'url, l'action que l'on souhaite réaliser sur la ressource, comme par exemple: http://www.monexample.com/webservice/api.php?action=get&var=item1 Concrètement, il s'agira d'écrire un script en PHP qui définit ces traitements.
1.3) Les formats d'échanges
Les formats d'échange sont le XML ou le JSON. On parle aussi de sérialisation des données. J'ai retenu le format JSON qui est très employé dans les API.JSON (JavaScript Object Notation) est un format de structuration des données. Les données sont considérées comme des objets avec des propriétés et sous-propriétés. Ce formalisme est assez proche de XML et est basé sur le langage javascript. Une page sur Wikipedia résume très bien JSON.
2) Ecrire une API REST/JSON en PHP
Nous allons faire simple dans notre exemple, je vais aller à l'essentiel pour faciliter la compréhension du lecteur. Mais il faut être conscient que le code ci-dessous est ultra-basique, et qu'il mérite une amélioration d'ensemble.L’objectif de notre client/serveur web est d'afficher la température de notre localité. Pour cela, nous n'allons écrire que la fonction GET dans notre API, il ne vous sera pas difficile de coder les trois autres fonctions! :-) Pour les données, nous les simulerons par un tableau avec la variable tab. Il vous suffira d'initialiser ce tableau avec vos données pour réutiliser ce code.
Donc voici, le script simplifié de notre API:
Et donc notre API retourne un fichier json, pour le tester il suffit de taper dans un navigateur une url de la forme http://votreserveurweb/api.php?action=get&var=temp . Ce qui retournera :
3) Un client Android pour notre API
Nous allons reprendre le client Android de l'article précédent et l'adapter à notre API.Pour le layout :
Pour le code de l'application mobile :
Sans oublier de modifier votre fichier manifest :
En cliquant sur le bouton, l'application réalisera une requête sur notre API, et réceptionnera le fichier JSON. Ensuite, il n'y a plus qu'à récupérer le champ température et à l'afficher.
Conclusion
Nous l'avons vu, la création d'un web service REST/JSON n'est pas difficile à réaliser, il suffit juste de se donner un peu de peine... Beaucoup rechignent à utiliser ce type de technologie, et pourtant les web services ont été pensés pour nous simplifier la vie!
© 2024 www.doritique.fr par Robert DORIGNY