Web Service SOAP Php

La création de web services en php peut présenter de nombreux avantages. Tout d’abord, cela permet de profiter de la simplicité de développement de Php pour réaliser rapidement des fonctions utilisables sur n’importe quel plate-forme de développement. La création de Web Services permet également de développer des sites utilisant la technologie AJAX. Il existe en effet de plus en plus de librairies permettant l’appel de fonctions Web Services en javascript.

Dans le cas de développement d’application cliente utilisant les technologies .NET ou Java. L’interêt de réaliser des fonctions Web Services en php permet d’éviter une mise en place d’un serveur lourd comme Tomcat, .NET ou ISS. En effet, il existe très peu d’hébergeur proposant ces technologies à un bon rapport qualité/prix. De part leurs interopérabilités des technologies et des langages, les Web Service permettent de réaliser des applications serveurs d’un côté et clients de l’autre sans se soucier du type de technologie employé par chacun de ces deux types d’application.

Fonctionnement Web Service

Les Web services sont un moyen de communication utilisant la technologie XML pour permettre l’appelle de fonctions distantes à travers le réseau Internet sans se soucier du langage de programmation utilisés. Utilisant le protocole HTTP principalement, les flux SOAP ne sont souvent pas filtré par les pare-feux mis en place.

Mode de fonctionnement:

  1. Le client recherche un Web Service dans des annuaires UDDI chargés de les recenser
  2. L’annuaire renvoie l’adresse du fichier Web Service Description Languages (WSDL)
  3. Grace à la description fournie dans le fichier WSDL, le client sait comment interagir avec le Web Service. Il peut envoyer un message SOAP
  4. Le serveur reçoit le message SOAP et exécute la fonction demandé
  5. Le serveur renvoi la réponse de l’appel à la fonction sous forme de message SOAP
  6. Le client reçoit le message SOAP et interprète le retour de l’appel à la fonction

Fonctionnement Web Service

Librairie NuSOAP

Même s’il est possible de réaliser un Web Service en écrivant manuellement le fichier WSDL et les message de retour sous format SOAP, il existe de plus en plus de librairies disponibles librement sur Internet. C’est le cas de la librairie NuSoap disponible sur la forge de NuSOAP qui va se charger de générer le fichier WSDL et les différents flux d’échange au format SOAP

Mon premier Web Service

Une fois le fichier zip de NuSoap téléchargé et dézippé.

<?php
//1. Inclure la librairie NuSOAP
require_once (« lib/nusoap.php »);
// 2. Créer un objet Serveur Soap
$server = new soap_server();
$server->configureWSDL(‘MonPremierWebService’,’http://soapinterop.org/’);
//Le premier paramètre définit le nom de votre web service.
//Le deuxième permet de définir un espace de nom qui permet d’identifier votre service web de manière unique.
//L’adresse du namespace ressemble souvent à une URL, mais il n’est pas nécessaire que l’adresse existe réellement
//Définir l’emplacement de l’espace de nom
$server->wsdl->schemaTargetNamespace = ‘http://soapinterop.org/xsd/’;
// Enregistre notre fonction HelloWorld comme fonction de notre WebService
$server->register(‘HelloWorld’, array(‘firstname’=>’xsd:string’), array(‘return’=>’xsd:string’),’http://soapinterop.org/’);
function HelloWorld ($firstname){
//new soapval permet de définir que le type de retour est de type string
return new soapval(‘return’,’string’, »Bonjour mon ami « .$firstname);
}
// Vérifie que la variable a été initialisé
$HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA :  »;
//Permet de retourner la réponse du web service
$server->service($HTTP_RAW_POST_DATA);
?>

Tester le Web Service

Pour tester votre webservice, vous pouvez vous connecter à l’adresse

http://<votre_serveur>/<nom_fichier>.php

Vous obtiendrez cette page d’information

Premier lancement NuSoap