Bonjour,

Je viens demander de l'aide sur ce forum afin de m'éclairer sur plusieurs points concernant la création d'un web service, sujet qui m'était inconnu jusqu'à aujourd'hui.

J'ai la tâche de créer un web service qui permettra à un site extérieur d'utiliser les données de ma base de données fonctionnant en php 5/mysql.

Le site extérieur a déjà définit une liste de méthode et de type à définir pour les différentes bases de données qui se synchronise avec lui.

Après renseignement, je me suis tourné vers nusoap qui me semble le moyen le plus simple pour moi de développer ce service web vu mon environnement.

Je me suis documenté sur le net afin de comprendre le fonctionnement des webservice et plus particulièrement de nusoap et il en ressort que je dois developper un serveur soap (le client étant déjà developpé et disponible sur le site extérieur).

(Arrétez moi si je dit de grosses bétises)

J'ai donc commencé à créer mon fichier php avec la biobliothèque nusoap et la génération du fichier wsdl à la volée par le fichier php.

Le problème qui se pose à moi et auquel je ne trouve pas d'explications sur le net sur la structure des déclarations pour le wsdl dans php.

En effet pour chaque type complexe ou méthode déclaré, un array est passé avant le type lui-même et je ne vois pas à quoi il correspond ?

Exemple :

//type classe iso avec nom et description
$serveur->wsdl->addComplexType (
'IsoClass',
'complexType',
'struct',
'all'
array(
'Name' => array('name'=>'Name','type'=>'xsd:string'),
'Extended_Description' => array('name'=>'Extended_Description','type'=>'xsd:string'),
);
Dans l'exemple ci-dessus, je déclare un type complexe, ce que je ne comprend pas c'est pourquoi faire array('name'=>'Name','type'=>'xsd:string'), alors que mon type de variable ici est bien un string ?

Si j'indique mon type complexe en entrée ou sorti de méthode, dois-je bien indiquer type=>'tns:IsoClass' ?

Comment puis alors déclarer en entrée ou sorti de méthode un tableau de ma variable complexe ? De même comme puis-je intégrer un tableau dans un des champs de mon type complexe ?(array('name'=>'tableau','type'=>'xsd:array') ?

J'espère être suffisament clair, cela étant très floue dans mon esprit