TUTORIEL PHP 
Créer des services Web avec SOAP et PHP
Dans cet article, nous allons écrire notre propre service Web avec les outils de base de PHP, et en faire un autre à l'aide de NuSOAP. (13/05/2004)

(fourni par Direction PHP)

  1. Introduction | 2. Conception de l'application
3. Utiliser NuSOAP| 4. Conclusion


Introduction
Vous pouvez concevoir un service Web comme étant une application disponible sur le réseau, généralement Internet mais pas seulement, et capable d'échanger des documents au format XML. Comme le but principal des services Web est de permettre à des applications de différentes plates-formes ou compilées avec différents langages, de communiquer ensemble, un langage commun doit être utilisé pour assurer l'interopérabilité : XML (eXtensible Markup Language) est le meilleur candidat pour cela, étant donné sa diffusion et le grand nombre de bibliothèques qui permettent de le manipuler.

D'ailleurs, il existe un sous-ensemble de XML, appelé SOAP (Simple Object Access Protocol), qui a été expressément créé dans le but de partager des données et d'invoquer des méthodes distantes, indépendamment de la plate-forme ou du serveur sur lequel elles fonctionnent, tant qu'il existe un protocole de communication permettant d'y accéder, comme par exemple HTTP.

Dans les deux numéros précédents de Direction|PHP, j'ai écrit deux articles qui montrent comment effectuer des Remote Procedure Call (RPC) et lire leur résultat en utilisant PHP et SOAP. Nous avons programmé deux applications qui accédaient aux interfaces fournies par Google et Amazon.com. Nous avons découvert en même temps des outils d'aide à la programmation, comme NuSOAP, une bibliothèque PHP très utile pour écrire des clients et des serveurs SOAP.

Cette fois-ci, nous allons écrire notre propre service Web, c'est-à-dire le serveur qui reçoit les commandes, et envoie les réponses.

Dans la première partie de cet article, nous analyserons la structure principale d'un service Web, puis nous nous intéresserons à ses particularités : cela nous permettra de concevoir notre propre service Web. Il sera simple, mais il présentera les fonctionnalités typiques d'un serveur de services Web. Puis, nous écrirons et testerons notre application, en nous intéressant en particulier à la gestion d'erreur et à la sécurité.


Comment fonctionne un service Web ?
Dans cet article, notre but est de permettre à une application conçue pour effectuer des sélections et des insertions dans une base de données, d'être utilisée par une tierce partie. Cela signifie que nous devons être capables de recevoir des requêtes d'autres systèmes, et de retourner une réponse qu'ils pourront comprendre, indépendamment de la plate-forme et de l'architecture distante.

Nous allons utiliser le protocole HTTP et traiter uniquement le cas des données qui nous parviennent par méthode POST : cela signifie qu'un utilisateur qui essaiera d'accéder à notre service Web directement, depuis son navigateur, recevra une erreur. Nous pouvons aussi décider de limiter les IP qui pourront accéder au service Web, mais, pour rester simple, nous ne détaillerons pas un tel filtre.

Ensuite, nous devons lire la requête, et l'analyser. Nous devons alors valider les paramètres que l'utilisateur nous a transmis, pour s'assurer que nous allons pouvoir fonctionner correctement : par exemple, nous allons nous assurer de la cohérence d'un couple nom d'utilisateur / mot de passe. Si tout est correct, nous allons alors effectuer la sélection ou l'insertion attendue, et retourner un résultat : les lignes lues dans la table, pour le premier cas, et un message de réussite ou d'erreur dans le second.

Maintenant, nous pouvons décrire le processus global d'un service Web :
- Lire la requête SOAP
- Analyser la requête
- Vérifier et valider les paramètres envoyés
- Effectuer l'opération attendue
- Envoyer une réponse SOAP

  Forum

Réagissez dans les forums de JDN Développeurs

Chacune de ces opérations requiert une gestion d'erreur stratégique : la requête peut être malformée, ou bien provenir d'une source interdite, l'analyse de la commande peut échouer, le nombre de paramètres peut être incorrect, et bien sûr, l'exécution de la commande peut aussi rencontrer un problème. Nous devons être préparé à interrompre l'exécution du script à tout moment, et envoyer un message d'erreur explicite au client.

  1. Introduction | 2. Conception de l'application
3. Utiliser NuSOAP| 4. Conclusion

 
Rédaction JDN Développeurs
 
Accueil | Haut de page