-
WEBSERVICE PHP SOAP WSDL
Bonjour,
Je patauge et j'ai besoin d'aide.
Je dois installer un webservice avec échanges selon le protocole SOAP.
Après plusieurs tests, essais recherches,etc je coince.
Mettre en place un webservice simple, je sais faire; genre hello world, ou afficher le résultat d'une requete sur bdd mysq par rapport à une question "client" de 2-3 critères.
Le problème c'est que les clients vont envoyer leurs questions en protocole SOAP, je vais traiter les questions, je dois leur répondre avec un protocole SOAP.
J'aimerais donc pouvoir savoir écrire une question "client" pour mes tests, savoir récupérer les informations dans la question pour interroger la base mysql, et bien entendu renvoyer une réponse au "client".
Ce que je ne comprend pas c'est sous quelle forme va m'arriver la question (xml), comment récupérer les valeurs dans cette question pour interroger ma base et ensuite fabriquer un xml de réponse ? Il me semblait qu'avec un wsdl la réponse était créée automatiquement. Je pige pas.
Je travaille en PHP 5, donc soap intégré.
Merci de vos réponses, aides, liens et pourquoi pas discussion live.
Bonne fin de journée.
-
Je n'ai jamais fait cela, mais en cherchant sur google j'ai trouvé cet article, ici-même hébergé.
Il m'a l'air clair et bien illustré.
En espérant qu'il t'aidera.
http://vivien-brissat.developpez.com...iels/php/soap/
-
PHP dispose nativement de classes pour SOAP (si l'extension est activée, ce qui est généralement le cas):
- SoapClient
- SoapServer
Elles peuvent fonctionner avec ou sans WSDL d'ailleurs, mais avec un WSDL c'est plus facile. Elles sont désespérément simples à mettre en place, pour peu qu'on sache faire de l'objet en PHP (vu que SOAP est un protocole objet à la base...)
Note: pour manipuler un WSDL, le mieux c'est encore Eclipse + WTP (Web Tools Plateform).
-
Salut,
Je rejoint Benjamin sur l'utilisation de l'extension native.
Tu peux utiliser aussi le logiciel SoapUI qui va te permettre d'inspecter le WSDL et de comprendre mieux la structure du web service.
par contre, ayant travailler plusieurs fois et avec de gros service SOAP.
tu dois savoir que l'extension n'est pas parfaite, et ça dépends aussi si le service web distant est fait avec Java/dotnet ou autre.
mais tu peux fixer ces bugs en héritant(extends) les classes Server/Client..et faire le nécessaire.