Blog ENI : Toute la veille numérique !
🐠 -25€ dès 75€ 
+ 7 jours d'accès à la Bibliothèque Numérique ENI. Cliquez ici
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
  1. Livres et vidéos
  2. Développer des services REST en Java
  3. Terminologie, rappels
Extrait - Développer des services REST en Java Échanger des données au format JSON
Extraits du livre
Développer des services REST en Java Échanger des données au format JSON Revenir à la page d'achat du livre

Terminologie, rappels

SOA

SOA (Service Oriented Architecture) est le terme anglais qui désigne une architecture logicielle orientée services.

Il s’agit d’une architecture qui encapsule les services du fournisseur à part des actions du client consommateur. Pour ce faire, le fournisseur dresse une liste des services disponibles dans un annuaire, accessible au consommateur. Cet annuaire s’appelle un UDDI (Universal Description Discovery and Integration).

Puis, les deux applications (le fournisseur et le consommateur) passent un contrat de service, à travers un ou plusieurs documents décrivant le fonctionnement des services.

Ce document, généré par le fournisseur au format XML (Extensible Markup Language), permet à un consommateur d’utiliser le service. Il s’agit du WSDL (Web Services Description Language).

Les services sont autonomes ; ils n’ont pas besoin d’un contexte externe. Ils sont optimisés, et le détail de leur implémentation n’est pas connu du client, qui n’accède qu’aux interfaces des services.

Les méthodes d’accès les plus usuelles à ces services sont les architectures REST et SOAP. Ce livre traitera de l’usage de REST, dont les échanges sont moins verbeux que ceux de SOAP et sont humainement compréhensibles. Et REST, contrairement à SOAP, ne couple pas fortement l’architecture du client...

ROA

ROA (Resource Oriented Architecture) est, comme son nom l’indique, une architecture mettant en avant les ressources. Il s’agit d’une mise en œuvre de REST, que l’on pourrait opposer à une architecture de type SOA (Services Oriented Architecture).

D’après L. Richardson et S. Ruby, dans le livre RESTful Web Services aux éditions O’Reilly, il est possible de considérer REST non pas comme une architecture mais comme un ensemble de critères de conception. Dans ce cas, ROA est le terme qui désigne les architectures des applications web RESTful qui respectent certaines règles : l’interface uniforme, l’adressage, le sans état, la connectivité.

1. L’interface uniforme

Les méthodes HTTP sont peu nombreuses et leurs définitions sont connues. Utiliser les méthodes HTTP pour différencier les actions sur des ressources permet d’offrir une interface uniforme.

2. L’adressage

Une URI (Uniform Resource Identifier) identifie une ressource. Grâce à l’URI, le serveur est capable d’accéder aux bonnes informations.

Le formatage des URI permet, de manière intuitive et structurée, de comprendre de quelle ressource il s’agit.

http://[domaine de votre application]/search/albums

http://[domaine de votre application]/album/MonAlbumPrefere

3. Le sans état

L’URI et ses éventuels...

ROCA

Il serait possible de définir ROCA (Resource Oriented Client Architecture) par le fait de concevoir des applications web de manière posée et réfléchie, respectueuse des standards et raisons d’être desdits standards. Ces applications se basent sur des échanges REST.

Ainsi, on peut définir une application web par deux côtés, le côté serveur et le côté client.

1. Le côté serveur

Le serveur, où réside toute la logique applicative, fournit des services REST, au travers des différentes méthodes HTTP disponibles. Les ressources générées peuvent être représentées sous différents formats, comme HTML (Hypertext Markup Language), XML ou JSON.

Lorsqu’une page de rendu est générée, le code HTML doit suivre la sémantique et être indépendant des besoins esthétiques du client.

D’autres outils que les navigateurs web peuvent être éventuellement utilisés pour appeler les services du serveur (par exemple, la commande wget sous Linux). 

Ainsi, l’utilisation d’un lecteur autre que visuel (curl, wget, lecteur vocal pour malvoyant…) est possible.

En copiant l’URL (Uniform Resource Locator) du serveur affichée par le client ou en envoyant un mail contenant l’URL en question, l’utilisateur...

JAXB

JAXB (Java Architecture for XML Binding) est un processus permettant de faire correspondre la représentation de ressources de format XML à des instances de classes Java, et inversement.

Si le développeur devait sérialiser et désérialiser des ressources XML manuellement, il devrait utiliser des librairies fournies par JAXP (Java API for XML Processing) pour manipuler le DOM (Document Object Model) ou pour parcourir la ressource selon les règles établies par SAX (Simple API for XML).

JAXB simplifie le processus en reportant le schéma XML au sein des classes Java représentant les ressources.

Par extension, JAXB peut aussi servir à sérialiser et désérialiser du JSON, ce qui sera vu dans les chapitres suivants.

WADL

Un WSDL (Web Services Description Language) est un document au format XML permettant de décrire un service web. La version 2.0 de WSDL permet de décrire une application REST. Il s’agit d’une recommandation officielle du W3C (World Wide Web Consortium).

Un document WADL (Web Application Description Language) est une notation alternative, toujours au format XML, permettant de décrire une application REST.

WADL a une syntaxe moins verbeuse et humainement plus compréhensible que WSDL.