Nous avions créé dans un
article précédent notre propre service Web élémentaire
en PHP à l'aide de la bibliothèque NuSOAP.
Parce que les fonctions WSDL de NuSOAP ne sont pas encore toutes
fonctionnelles (notamment configureWSDL(),
qui nous permettrait de générer automatiquement le
document WSDL relatif à notre service), celui-ci n'est réellement
utilisable que par des requêtes NuSOAP.
Nous allons en revanche voir ici comment utiliser des services disposants
de contrats WSDL au sein de nos pages PHP, à l'aide de NuSOAP.
Nous verrons dans un prochain article comme générer
automatiquement un contrat WSDL pour un service Web construit avec
NuSOAP.
Description
d'un contrat WSDL
Le Web Service Description Language, comme son nom l'indique,
est un "vocabulaire" XML utilisé pour décrire
les possibilités d'un service Web. Il permet de faire le
lien entre le service créé et l'UDDI
(Universal Description, Discovery and Integration), le "répertoire"
de tous les services Web disponibles publiquement. WSDL représente
ainsi une manière standard de documenter les requêtes
qu'un service accepte et les réponses qu'il peut donner.
On peut créer un document WSDL à la main (comme tout
document XML), mais cela devient vite fastidieux. Il existe des
outils permettant d'automatiser ce processus, comme OmniOpera
ou CapeClear
Studio.
Appeler
un service
Prenons l'un des nombreux services disponibles sur le site de référence
xMethods:
ici, nous choisissons le service Babelfish,
qui nous permettra d'envoyer en requête une phrase ou un mot
en français, et de recevoir en réponse sa traduction
anglaise.
Voici le code
que nous utilisons:
(fichier traduc.php)
<?php
include('nusoap.php');
$wsdl = "http://www.xmethods.net/sd/2001/BabelFishService.wsdl";
$client = new soapclient($wsdl, 'wsdl');
$parametres = array(
'translationmode' => 'fr_en',
'sourcedata'
=> 'Ceci est un test'
);
?>
<?=$client->call('BabelFish', $parametres);?>
Principales
différences avec notre appel pour notre service "Hello"
(voir l'article): l'URL
du service est maintenant le fichier WSDL qui le défini (et
non plus le service lui-même; l'URL du service est définie
dans le document WSDL), et l'apparition de l'argument wsdl
dans l'instanciation de la classe soapclient.
Les paramètres ne sont ensuite qu'adaptés du mode
d'emploi de ce service.
|