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

3 réflexions au sujet de « Web Service SOAP Php »

  1. Bonjour, merci pour ce tutoriel clair. J’ai créé un webservice comme indiqué et lorsque je visite la page en question cela semble fonctionner correctement.

    Cependant, en créant un client sur un autre serveur, j’ai un message d’erreur du style SOAP-ERROR: Parsing WSDL.

    Serait-il possible de montrer comment créer le client qui saura lancer le hello et l’interpréter ?

    Merci

  2. J’ai fait ce tutoriel il y a déjà longtemps mais pour tester les Web Services, il existe de nombreux solutions clientes à installer sur son PC qui permette de tester les fonctions. Vous pouvez essayer d’utiliser SoapUI (http://www.eviware.com/Download-SoapUI/download-latest-release.html) qui dans sa version gratuite devrait vous permettre de tester les fonctions même si la prise en main n’est pas évidente. Si vous utilisez un IDE comme Eclipse ou encore Visual Studio, il existe des plugins ou des fonctions natives pour le faire. Mais j’ai testé ces outils il y a déjà longtemps, il doit y avoir de nouveaux outils plus récents disponibles sur Internet. Pour cherche un bon client de Web Service, il ne faut pas se limiter à ceux développés en PHP, au contraire, le format SOAP permet des échanges entre plateforme, quelques soit le langage utilisé. Il doit donc exister des exécutables prêt à lancer pour tester des web-services. En espérant avoir été utile.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *