Bonjour tout le monde
je cherche un exemple simple qui explique comment consommer un service web WSDL en utilisant du javascript/Ajax ?
Merci d'avance![]()
Bonjour tout le monde
je cherche un exemple simple qui explique comment consommer un service web WSDL en utilisant du javascript/Ajax ?
Merci d'avance![]()
ça dépends du service
un service SOAP
tu ouvre l'url associé au service et tu lui envois une enveloppe SOAP
pour ça tu as intérêt à bien connaitre la norme car il va te falloir constituer une string correspondant au XML SOAP
tu envois l'enveloppe à ton URL avec XMLHTTPRequest
attention à tout les mécanisme d'authentification qui ne dépends pas de la norme mais de la façon don le serveur la met en oeuvre.
en réponse tu vas recevoir un enveloppe SOAP je te conseille d'utiliser response.XML qui vas parser pour toi la réponse.
à l'aide de XPath tu peux alors récupérer l'élément de ton choix dans la réponse.
si ton web service n'est pas sur le même serveur que celui hébergeant ta page tu vas avoir un pb de droit et l'utilisateur sera obligé de baisser la sécurité de son navigateur.
perso je ne fais jamais ça.
sur le serveur où est hébergé ma page je fait un php qui offre le même service que le webservice mais cette fois sous forme simple
la méthode et les paramètres sont transmit via des variable HTTP et la réponse est un JSON
ainsi un simple appel AJAX permet d'y accéder sans pb de cross-domain
côté serveur mon url hébergeant le service est un php qui lit les paramètres reçus et invoque le webservice via les API php adéquat (SOAP REST etc.) il récupère la réponse et en fait un JSON qu'il donne au client.
pour la sécurité lorsque le client ouvre ma page je génère un UUID que je place dans la page. lors des appel AJAX ce UUID est transmis via une entête HTTP
le service PHP lit l'entête et la compara à la valeur qu'il possède sur le serveur dans la session de l'utilisateur.
on ne peu donc pas invoquer mon service local sans passer par l'URL de ma page.
si la sécurité est sensible le délait d'expiration du UUID est très court
la page embarque alors un appel régulier à un service de régénération.
la page appelle se service avec l'UUID qui lui en fournis un nouveau avant le délais d'expiration. ainsi lorsque l'utilisateur invoque le service il utilise le dernier UUID
une personne qui capturerait l'UUID d'un utilisateur se retrouve avec un délais très cour pour invoquer le service.
le tout se faisant dans une session HTTPS.
mais il est rare d'avoir des besoins de sécurité aussi poussés.
A+JYT
Partager