0% ont trouvé ce document utile (0 vote)
4 vues32 pages

Web Services REST avec Spring et Postman

Ce document présente un cours sur la création de Web Services REST avec Spring, en abordant les architectures physiques et logiques, ainsi que l'utilisation de Postman pour tester les services. Il décrit les différentes architectures (2-Tiers, 3-Tiers, N-Tiers) et fournit des exemples pratiques de mise en œuvre d'un service CRUD pour une entité 'Chambre'. Enfin, il mentionne l'utilisation de Spring Doc (Swagger) pour documenter les services exposés.

Transféré par

emma
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
4 vues32 pages

Web Services REST avec Spring et Postman

Ce document présente un cours sur la création de Web Services REST avec Spring, en abordant les architectures physiques et logiques, ainsi que l'utilisation de Postman pour tester les services. Il décrit les différentes architectures (2-Tiers, 3-Tiers, N-Tiers) et fournit des exemples pratiques de mise en œuvre d'un service CRUD pour une entité 'Chambre'. Enfin, il mentionne l'utilisation de Spring Doc (Swagger) pour documenter les services exposés.

Transféré par

emma
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Web Services REST avec SPRING

© 2025 – Mourad Hassini – Formation Spring – WS REST avec Spring 1


Plan du Cours

▪ Architecture Physique
▪ Architecture Logique
▪ Architecture Physique de notre Application
▪ Web services avec Spring (@Service + @RestController)
▪ Test des WS avec Postman

– TP Spring Boot + Spring Data JPA + WS REST + Postman

© 2025 – Mourad Hassini – Formation Spring – WS REST avec Spring 2


Architecture Physique

• Tier est un mot anglais qui signifie étage ou niveau.

• Une application peut être en général 2-Tiers, 3-Tiers ou N-Tiers.

© 2025 – Mourad Hassini – Formation Spring – WS REST avec Spring 3


Architecture Physique - 2-Tiers

• Une application 2-Tiers est typiquement une application client lourd.

• Le niveau Présentation (IHM) et le niveau Traitement sont sur la machine


de l’utilisateur.
• Le niveau Base de Données est sur un autre serveur.

• C’est une architecture Client / Serveur.


• Client = demandeur de ressource
• Serveur = fournisseur de ressource

Inconvénients
• Toute mise à jour des fonctionnalités nécessite un déploiement sur toutes
les machines des utilisateurs.
• Le serveur ne fait pas appel à une autre application pour fournir le service.

© 2025 – Mourad Hassini – Formation Spring – WS REST avec Spring 4


Architecture Physique - 3-Tiers

• Une application 3-Tiers introduit un niveau intermédiaire ( middleware) entre


le client et le serveur.
• Le niveau intermédiaire est chargé de fournir la ressource en faisant appel à
un autre serveur.

Avantages
• Centraliser la logique application sur un serveur HTTP
Inconvénients
• Le serveur HTTP ( élément principal de l’architecture )est fortement sollicité
d’où une charge de demandes provenant à la fois du client et du serveur.
• Bien que cette architecture résolve le problème du client lourd de
l’architecture deux tiers, le soulagement du client est remplacé par un
serveur fortement sollicité.

© 2025 – Mourad Hassini – Formation Spring – WS REST avec Spring 5


Architecture Physique - 3-Tiers

• Une application 3-Tiers est typiquement une application Web :

– Niveau Présentation : IHM (Navigateur sur la machine de l’utilisateur)


– Niveau Traitement : Un serveur web (Tomcat, …) qui contient le WAR de
notre application.
– Niveau Base de données : Un serveur de BD qui stocke les données de
notre application.

© 2025 – Mourad Hassini – Formation Spring – WS REST avec Spring 6


Architecture Physique - N-Tiers

• L’architecture N tiers assure un équilibre de charge entre le client et le


serveur par l’introduction de nouvelles couches.
• Voici une architecture 4-Tiers d’une application web (GUI – Angular sur le
Serveur NodeJS – Spring Boot (Serveur Web Tomcat embarqué) – Serveur de
base de données MySQL) :

© 2025 – Mourad Hassini – Formation Spring – WS REST avec Spring 7


Architecture Physique - N-Tiers

© 2025 – Mourad Hassini – Formation Spring – WS REST avec Spring 8


Architecture Physique - N-Tiers
• Voici une architecture n-Tiers, en Micro-Servcies, d’une application web : GUI
/ NodeJS / Spring Boot / DB

© 2025 – Mourad Hassini – Formation Spring – WS REST avec Spring 9


Architecture Physique de notre Application

© 2025 – Mourad Hassini – Formation Spring – WS REST avec Spring 10


Architecture logique
• Une application typique utilisant Spring est généralement structurée en couches (5
couches : Web / Controller / Service / Repository / Entité) au lieu de l’architecture
logique simplifiée en 3 couches (Présentation / Service / Accès aux Données) :

– Couche Web (non fournie par Spring)


– Couche Contrôleur
 Couche Présentation (Web + Contrôleur)

– Couche Service : interface métier avec mise en œuvre de certaines


fonctionnalités.
– Couche Repository (Recherche et Persistance des objets, CRUD)
 Couche Métier (Service + Repository)

– Couche Entités (Modèle de données)

• Spring est un Framework utilisé pour créer et injecter les objets requis pour
communiquer entre les différentes couches (Injection de Dépendances - IoC).
© 2025 – Mourad Hassini – Formation Spring – WS REST avec Spring 11
Architecture logique de notre application

© 2025 – Mourad Hassini – Formation Spring – WS REST avec Spring 12


WS REST avec Spring + Postman

Nous allons mettre en place une application qui suit l’architecture


logique (multi-couches) et physique (N-tiers) décrites ci-dessus.

© 2025 – Mourad Hassini – Formation Spring – WS REST avec Spring 13


Postman

• Parmi les nombreuses solutions pour interroger ou tester les web services
et les API, Postman propose de nombreuses fonctionnalités, une prise en
main rapide et une interface graphique agréable.

• Postman permet de construire et d’exécuter des requêtes HTTP, de les


stocker dans un historique afin de pouvoir les rejouer.

© 2025 – Mourad Hassini – Formation Spring – WS REST avec Spring 14


Postman

© 2025 – Mourad Hassini – Formation Spring – WS REST avec Spring 15


Dépendance web

• Le starter web permet d’ajouter toutes les dépendances liées à la partie


web notamment celles liées à Spring MVC et l’exposition des web
services.

© 2025 – Mourad Hassini – Formation Spring – WS REST avec Spring 16


Url de notre Application Web

• Dans le fichier de properties [Link], ajouter les lignes suivantes,


pour définir l’url de notre application :

#Server configuration
[Link]=8089
[Link]-path=/foyer

© 2025 – Mourad Hassini – Formation Spring – WS REST avec Spring 17


TP - Spring : Boot – Core – Data JPA – WS REST

• Nous allons exposer des Web Service REST :

• Nous allons utiliser le même projet « foyer-universitaire » et


exposer les méthodes (CRUD) avec des Web Service REST.

• Ces Web Services seront aussi testés avec Postman et avec


Spring Doc (Swagger)

© 2025 – Mourad Hassini – Formation Spring – WS REST avec Spring 18


TP - Spring : Boot – Core – Data JPA – WS REST

• Installation de Postman :

• Télécharger et à installer Postman.

© 2025 – Mourad Hassini – Formation Spring – WS REST avec Spring 19


TP - Spring : Boot – Core – Data JPA – WS REST

• Vérifier que le fichier de properties contient les propriétés nécessaires (web, base
de données, …) :

# DB Configuration :
[Link]=jdbc:mysql://localhost:3306/db?createDatabaseIfNotExist=true
[Link]=root
[Link]=
[Link]-sql=true
[Link]-auto=update
# Server configuration :
[Link]=8089
[Link]-path=/foyer

© 2025 – Mourad Hassini – Formation Spring – WS REST avec Spring 20


TP - Spring : Boot – Core – Data JPA – WS REST

• Nous allons créer le Service ChambreServiceImpl et l’injecter dans le


contrôleur.

• Créer les package [Link]

• Créer l’interface IChambreService


• Créer le bean Spring ChambreServiceImpl annoté @Service qui implémente
l’interface IChambreService

• Créer le CRUD dans le Service (voir pages suivantes) :

© 2025 – Mourad Hassini – Formation Spring – WS REST avec Spring 21


TP - Spring : Boot – Core – Data JPA – WS REST

package [Link];

import [Link];

import [Link];

public interface IChambreService {

public List<Chambre> retrieveAllChambres();


public Chambre retrieveChambre(Long chambreId);
public Chambre addChambre(Chambre c);
public void removeChambre(Long chambreId);
public Chambre modifyChambre(Chambre chambre);

// Here we will add later methods calling keywords and methods calling JPQL

© 2025 – Mourad Hassini – Formation Spring – WS REST avec Spring 22


TP - Spring : Boot – Core – Data JPA – WS REST
@Service
@AllArgsConstructor
public class ChambreServiceImpl implements IChambreService {

ChambreRepository chambreRepository;

public List<Chambre> retrieveAllChambres() {


return [Link]();
}
public Chambre retrieveChambre(Long chambreId) {
return [Link](chambreId).get();
}
public Chambre addChambre(Chambre c) {
return [Link](c);
}
public void removeChambre(Long chambreId) {
[Link](chambreId);
}
public Chambre modifyChambre(Chambre chambre) {
return [Link](chambre);
}
} © 2025 – Mourad Hassini – Formation Spring – WS REST avec Spring 23
TP - Spring : Boot – Core – Data JPA – WS REST

Maintenant nous allons créer le rest controlleur :

• Créer les package [Link]

• Créer le bean Spring ChambreRestController annoté @RestController

• Créer les méthodes nécessaires pour exposer le CRUD (voir pages suivantes).

© 2025 – Mourad Hassini – Formation Spring – WS REST avec Spring 24


TP - Spring : Boot – Core – Data JPA – WS REST
@RestController
@AllArgsConstructor
@RequestMapping("/chambre")
public class ChambreRestController {

IChambreService chambreService;

// [Link]
@GetMapping
public List<Chambre> getChambres() {
List<Chambre> listChambres = [Link]();
return listChambres;
}

// [Link]
@GetMapping("/{chambre-id}")
public Chambre retrieveChambre(@PathVariable("chambre-id") Long chId) {
Chambre chambre = [Link](chId);
return chambre;
}
(Suite de la classe page suivante) :
© 2025 – Mourad Hassini – Formation Spring – WS REST avec Spring 25
TP - Spring : Boot – Core – Data JPA – WS REST
// [Link]
@PostMapping
public Chambre addChambre(@RequestBody Chambre c) {
Chambre chambre = [Link](c);
return chambre;
}

// [Link]
@DeleteMapping("/{chambre-id}")
public void removeChambre(@PathVariable("chambre-id") Long chId) {
[Link](chId);
}

// [Link]
@PutMapping
public Chambre modifyChambre(@RequestBody Chambre c) {
Chambre chambre = [Link](c);
return chambre;
}

}
© 2025 – Mourad Hassini – Formation Spring – WS REST avec Spring 26
TP - Spring : Boot – Core – Data JPA – WS REST

• Tester l’ensemble des méthodes exposées, avec Postman

• La séance prochaine, les web services exposés seront testés


avec Spring Doc (Swagger).

© 2025 – Mourad Hassini – Formation Spring – WS REST avec Spring 27


Postman
Pour avoir la structure de l’objet JSON chambre, commencer par créer une chambre sans attributs,
puis utiliser cet objet JSON par la suite (enlever la clé primaire car auto générée) :

© 2025 – Mourad Hassini – Formation Spring – WS REST avec Spring 28


TP - Spring : Boot – Core – Data JPA – WS REST

© 2025 – Mourad Hassini – Formation Spring – WS REST avec Spring 29


Liste des Chambres( Navigateur + Postman )

© 2025 – Mourad Hassini – Formation Spring – WS REST avec Spring 30


Liste des Chambres( Navigateur + Postman )

© 2025 – Mourad Hassini – Formation Spring – WS REST avec Spring 31


WS REST avec Spring

La suite (Voir Support suivant) :

• Les web services exposés (liés à l’entité Chambre) seront testés


avec Spring Doc (Swagger).

• Les web services liés aux autres entités seront exposés et testés
avec Postman et Spring Doc.

© 2025 – Mourad Hassini – Formation Spring – WS REST avec Spring 32

Vous aimerez peut-être aussi