Services Web - EPSI POE mars 2017 - David Gayerie Licence Creative Commons

Plan du cours

  1. Introduction : Web Service et Web API

HTTP

  1. Le protocole HTTP
  2. Les cas d'utilisation
  3. La négociation de contenu
  4. Les requêtes conditionnelles
  5. La gestion du cache
  6. Les liens

REST & API Web

  1. REST
  2. Les contraintes REST
  3. L'hypermedia
  4. Les API Web

Annexes

  1. XML
  2. Service Web (WS-*) : SOAP/WSDL

Introduction : Web Service et Web API

Le terme de Web service est problématique car, pour des raisons historiques, il peut regrouper plusieurs acceptions. Voici la définition du terme "Web service" donnée respectivement par le W3C et Wikipedia :

Définition du W3C

There are many things that might be called "Web services" in the world at large. However, for the purpose of this Working Group and this architecture, and without prejudice toward other definitions, we will use the following definition:

A Web service is a software system designed to support interoperable machine-to-machine interaction over a network. It has an interface described in a machine-processable format (specifically WSDL). Other systems interact with the Web service in a manner prescribed by its description using SOAP-messages, typically conveyed using HTTP with an XML serialization in conjunction with other Web-related standards.

Définition de Wikipedia

A Web service is a service offered by an electronic device to another electronic device, communicating with each other via the World Wide Web. In a Web service, Web technology such as HTTP, originally designed for human-to-machine communication, is utilized for machine-to-machine communication, more specifically for transferring machine readable file formats such as XML and JSON.

La définition du W3C restreint la notion de service Web à un ensemble de technologies (WSDL, SOAP, HTTP et XML). Cela est bien normal pour le consortium qui est responsable de la rédaction de la plupart des protocoles cités. L'article de Wikipédia donne une définition plus ouverte, allant jusqu'à distinguer des grands types de services Web.

Pour l'ensemble de ce cours, nous opterons pour une distinction entre Web API et Web service qui s'impose de plus en plus dans la littérature. Une API Web (parfois nommée RESTful Web Services) est une interface programmatique basée sur HTTP permettant à un client et à un serveur d'interagir suivant un échange de requête/réponse. Un service Web est un protocole de communication basé sur les standards W3 tels que XML, SOAP et WSDL.

Ce cours porte principalement sur les API Web au travers d'un approfondissement des connaissances sur le protocole HTTP et une présentation du modèle d'architecture REST. Les services Web proprement dits sont présentés dans les annexes pour celles et ceux qui désirent une introduction aux protocoles SOAP et WSDL.