Formation Développer des services RESTful en Java - Leuville Objects

Développer des services RESTful en Java

Description

REST est aujourd'hui de plus en plus utilisé pour la réalisation d'architectures orientées services dans laquelle des systèmes hétérogènes nécessitent de communiquer entre eux par échange de messages sur HTTP. Plus qu'une alternative à SOAP, il s'agit d'une autre façon, complémentaire, de voir la communication entre applications. La spécification JAX-RS (JSR 311) décrit un standard de développement de services REST en Java.

Objectifs

A l'issue de cette formation, les participants seront en mesure de:

  • Comprendre les concepts HTTP et REST
  • Effectuer des choix entre les différentes techniques présentées
  • Réaliser et déployer une classe de ressource JAX-RS
  • Fournir et consommer différents types de données
  • Connaître les différentes propositions de publication d'API REST

Méthodes pédagogiques

Formation avec un minimum de 50% de travaux pratiques. La session alterne les présentations théoriques avec les exercices en groupe ou individuels. Des versions numériques de tous les documents sont remises aux participants (support de cours, énoncés, corrigés).

Participants

Ce cours s’adresse aux responsables de projet, développeurs et architectes désirant comprendre ce qu’est REST et la spécification relative à sa mise en œuvre en Java.

Pré requis

  • Connaissances de base des applications web Java
  • Maîtrise du langage Java 5

Programme

Présentation des concepts

Présentation des concepts REST, tel qu'ils ont été décrits par Roy Fielding.

  • Representational State Transfer
  • Intégration de REST dans une architecture informatique
  • Positionnement par rapport à SOAP, gRPC, ...

Le protocole HTTP

Le fonctionnement de REST est, en partie, calqué sur les possibilités offertes par le protocole HTTP.

  • Historique de HTTP
  • Structure des messages HTTP
  • Les méthodes HTTP: GET, POST, PUT, DELETE, ...
  • Sécurisation d'une communication HTTP

JAX-RS

JAX-RS est la spécification Java qui standardise le développement de services dits RESTful.

  • Java API for RESTful Web Services
  • Classe ressource
  • Les annotations JAX-RS: @Path, @Produces, @QueryParam, ...
  • L'URI pour identifier les ressources
  • Le passage de paramètres
  • Le déploiement de ressources

Mise en pratique: réalisation d'une classe de ressources avec JAXRS-RI (Jersey) ou Apache CXF, utilisation de types multimédia (images, ...).

Métadonnées REST et consommation d'une ressource en Java

Aperçu des différentes solutions de description de ressources.

  • Propositions en présence: WADL, Swagger, OpenAPI, ...
  • La génération de code client ou la découverte dynamique des possibilités ?
  • L'approche hypermedia avec HATEOAS
  • L'API cliente de JAX-RS

Mise en pratique: réalisation d'une API REST avec Swagger/OpenAPI et d'un client Java.

JSON et XML

Aperçu des techniques de binding Java - XML - JSON.

  • Rappels XML et XSD.
  • Usage des flux JSON et XML dans une architecture RESTful
  • Les principes essentiels de JAXB

Mise en pratique: réalisation de ressources disponibles simultanément en JSON et en XML.

REST et la sécurité

Les solutions permettant de sécuriser la consommation de ressources REST.

  • Application des concepts d'authentification, intégrité, confidentialité à REST.
  • La sécurité des services avec Jersey: annotations, configuration
  • Introduction à oAuth

Mise en pratique: authentification avec Jersey, mise en place de HTTPS.

Eléments d'architecture

Place des services RESTful dans une architecture globale.

  • Place des services RESTful dans une architecture multi-niveaux
  • REST comme couche d'accès aux données
  • REST comme couche d'objets métiers
  • REST en tant que services frontaux

Filière

JavaEE

Code

CP-REST

Durée

3 jours

Tarif

890 € HT

Sessions

  • 29/10/2018
  • Nous contacter

    01 39 50 2000