Web Services et PHP
          31/01/2007



    François-Xavier Bois
    fxbois@kernix.com
Bienvenue
• François-Xavier Bois
• Fondateur de la société KerniX Software
  http://www.kernix.com
• Auteur de « PHP5, le ...
Les Web Services
• Mise à disposition de ressources par un
  site web.
• Les ressources :
  – Données
    ex: traduction d...
Avant les WS
• Chaque projet inventait sa norme pour
  mettre à disposition des données
 ex :
 “rouge","bleu",“vert“
 ="01...
Avantages
• Normalisation
  – Format du message (souvent XML).
  – Façon d’appeler les méthodes.
  – Gestion des erreurs.
...
Inconvénients
• Plus lourds au niveau ressources.
• Plus complexes à mettre en œuvre.
• Nécessité de disposer des bonnes
 ...
Les types de WS
Différents types de WS peuvent être mis en
œuvre (par ordre croissant de complexité) :
• REST
• XML-RPC
• ...
REST
• La requête du client prend la forme
  d’une URL
 http://api.search.yahoo.com/WebSearchService/V1/webSearch?ap
 pid=...
XML-RPC
Requêtes (du client) et réponses (du serveur)
sont au format XML.
Requête (méthode POST)                          ...
SOAP
• Des messages au format XML sont échangés
  entre le client et le serveur.
• La méthode POST est utilisée pour la re...
PHP et WS
• PHP4 n’est pas une version optimale pour
  la gestion des WS.
• PHP5 dispose en interne de tous les
  composan...
Environnement
• Ajout de l’extension SOAP
 PHP settings > PHP extensions > Add extension >
 php_soap.dll
• Contrôle de la ...
Notre Exemple
Interaction entre 2 sites

1.   Un site e-commerce permettant de réserver des places de
     concert :
     ...
Consommation d’un WS
• Nous souhaitons obtenir des informations
  sur le prochain concert de « U2 »
• Nous utilisons le se...
Création d’un WS
Le principe consiste à créer une classe
« modèle » et à la transmettre à la classe
SoapServer qui se char...
Utilisation du fichier WSDL
• Permet de décrire les interfaces des
  méthodes : nom + attributs.
• Son utilisation allège ...
Serveur avec WSDL
• Nous utilisons maintenant le fichier WSDL

 Fichiers :
 /tp3/centrale/services2.php
 /tp3/centrale/cen...
Client avec WSDL
• Le code est plus court et plus lisible.
• Nous sommes maintenant en mesure de
  lister les différents s...
Espionnage des échanges
Une option permet de tracer les messages
échangés entre le client et le serveur.

Fichier : /tp3/b...
Gestion d’erreur
Les erreurs se gèrent en émettant des Exceptions
de type SoapFault au sein du serveur et en les
« attrapa...
Les WS aujourd’hui
• Tous les « grands » du WEB en proposent
  – Google : Blogger, Maps, AdWords, Checkout,
    Calendar
 ...
WEB 2.0
Les WS font partie de la révolution WEB2.0
en :
• permettant au site d’interagir (Mash-
  Ups),
• en mettant à dis...
Conclusion
En utilisant les WS vous :
- gagnez du temps (auto description des
  fonctionnalités du site),
- êtes compatibl...
Questions / Réponses

    A vous la parole
Prochain SlideShare
Chargement dans…5
×

Presentation

753 vues

Publié le

Publié dans : Technologie
0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
753
Sur SlideShare
0
Issues des intégrations
0
Intégrations
4
Actions
Partages
0
Téléchargements
11
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Presentation

  1. 1. Web Services et PHP 31/01/2007 François-Xavier Bois fxbois@kernix.com
  2. 2. Bienvenue • François-Xavier Bois • Fondateur de la société KerniX Software http://www.kernix.com • Auteur de « PHP5, le guide complet » et « PHP5 et MySQL5 » chez MicroApplication
  3. 3. Les Web Services • Mise à disposition de ressources par un site web. • Les ressources : – Données ex: traduction d’un mot – Actions ex: ajout d’une traduction
  4. 4. Avant les WS • Chaque projet inventait sa norme pour mettre à disposition des données ex : “rouge","bleu",“vert“ ="01234",“aaaa""bb",ccc aaa bb ccc • Aucune formalisation des codes retours ex: un code de status HTTP, une valeur dans la page de retour (1, ‘OK’,…)
  5. 5. Avantages • Normalisation – Format du message (souvent XML). – Façon d’appeler les méthodes. – Gestion des erreurs. • Indépendance vis-à-vis : – De l’architecture – Du système d’exploitation : Linux, Solaris, Win – Du serveur web : Apache, IIS – Du langage de programmation : PHP, Java, Python, Ruby
  6. 6. Inconvénients • Plus lourds au niveau ressources. • Plus complexes à mettre en œuvre. • Nécessité de disposer des bonnes extensions, librairies.
  7. 7. Les types de WS Différents types de WS peuvent être mis en œuvre (par ordre croissant de complexité) : • REST • XML-RPC • SOAP
  8. 8. REST • La requête du client prend la forme d’une URL http://api.search.yahoo.com/WebSearchService/V1/webSearch?ap pid=sl2007&query=persimmon&results=2&output=json http://developer.yahooapis.com/TimeService/V1/getTime?appid= sl2007 • La réponse peut prendre différentes formes : XML, JSON, YAML, TEXT. • Oblige le client à « parser » la réponse.
  9. 9. XML-RPC Requêtes (du client) et réponses (du serveur) sont au format XML. Requête (méthode POST) Réponse du serveur POST /rpchandler HTTP/1.1 200 OK HTTP/1.0 User-Agent: AcmeXMLRPC/1.0 Date: Sun, 14 Jan 2007 12:08:58 GMT Host: mon.server.com Server: Apache/2.0.12 (Unix) Debian/GNU PHP/5.2.0 Content-Type: text/xml Connection: close Content-Length: 165 Content-Type: text/xml Content-length: 128 <?xml version="1.0"?> <methodCall> <?xml version="1.0"?> <methodName> <methodResponse> traduitMot <params> </methodName> <param> <params> <value><string>red</string></value> <param> </param> <value><string>rouge</string></value> </params> </param> </methodResponse> </params> </methodCall>
  10. 10. SOAP • Des messages au format XML sont échangés entre le client et le serveur. • La méthode POST est utilisée pour la requête du client. • Ces messages (organisés sous forme d’enveloppes) sont plus complexes qu’en XML- RPC. • Un fichier WSDL décrit les méthodes (+ arguments) proposées par le service. Il s’agit également d’un fichier XML.
  11. 11. PHP et WS • PHP4 n’est pas une version optimale pour la gestion des WS. • PHP5 dispose en interne de tous les composants permettant de construire ou de consommer des WS. Tous les types de WS sont gérés par PHP.
  12. 12. Environnement • Ajout de l’extension SOAP PHP settings > PHP extensions > Add extension > php_soap.dll • Contrôle de la présence de l’extension Localhost > phpinfo() • Création de la base http://localhost/tp3/install.php
  13. 13. Notre Exemple Interaction entre 2 sites 1. Un site e-commerce permettant de réserver des places de concert : Répertoire : /tp3/boutique Lien : http://localhost/tp3/boutique 2. Une centrale de réservation permettant de contrôler l’état d’un concert Répertoire : /tp3/centrale Base de données : centrale URL : http://localhost/tp3/centrale Type de Web Service : SOAP.
  14. 14. Consommation d’un WS • Nous souhaitons obtenir des informations sur le prochain concert de « U2 » • Nous utilisons le service getConcert fourni par le site « Centrale » Fichier : /tp3/boutique/fiche.php URL : http://localhost/tp3/boutique
  15. 15. Création d’un WS Le principe consiste à créer une classe « modèle » et à la transmettre à la classe SoapServer qui se chargera de rendre disponible ses méthodes en respectant le protocole SOAP. Fichier : /tp3/centrale/services.php
  16. 16. Utilisation du fichier WSDL • Permet de décrire les interfaces des méthodes : nom + attributs. • Son utilisation allège le code associé aux clients. • Le service s’auto décrit. • Il constitue une forme de contrat entre le client et le serveur (l’implémentation importe peu). • Le format est hélas assez complexe.
  17. 17. Serveur avec WSDL • Nous utilisons maintenant le fichier WSDL Fichiers : /tp3/centrale/services2.php /tp3/centrale/centrale.wsdl
  18. 18. Client avec WSDL • Le code est plus court et plus lisible. • Nous sommes maintenant en mesure de lister les différents services proposés par le site « Centrale ». Fichier : /tp3/boutique/fiche2.php URL : http://localhost/tp3/boutique/fiche2.php?groupe=u2
  19. 19. Espionnage des échanges Une option permet de tracer les messages échangés entre le client et le serveur. Fichier : /tp3/boutique/debug.php URL : http://localhost/tp3/boutique/debug.php?groupe=u2
  20. 20. Gestion d’erreur Les erreurs se gèrent en émettant des Exceptions de type SoapFault au sein du serveur et en les « attrapant » au sein du client. - Fichiers : /tp3/boutique/fiche3.php /tp3/centrale/services3.php /tp3/centrale/centrale2.php - URL : http://localhost/tp3/boutique/fiche3.php?groupe=u2zz
  21. 21. Les WS aujourd’hui • Tous les « grands » du WEB en proposent – Google : Blogger, Maps, AdWords, Checkout, Calendar – Yahoo : Moteur de recherche, Traffic – Flicker : gestion de photos – eBay – Amazon : possibilité d’externaliser intégralement une boutique
  22. 22. WEB 2.0 Les WS font partie de la révolution WEB2.0 en : • permettant au site d’interagir (Mash- Ups), • en mettant à disposition des données exploitables facilement par des Javascripts.
  23. 23. Conclusion En utilisant les WS vous : - gagnez du temps (auto description des fonctionnalités du site), - êtes compatible avec un maximum de plateforme, - permettez à des partenaires de travailler avec vous et élargissez votre réseau.
  24. 24. Questions / Réponses A vous la parole

×