Client réactif
Nous pouvons utiliser la classe WebClient qui a été introduite dans Spring 5 et qui est l’équivalent du RestTemplate traditionnel. C’est un client non bloquant prenant en charge les flux réactifs. Il permet de récupérer les données des endpoints fournis par le contrôleur WebFlux. WebClient RestTemplate La classe WebClient va remplacer le RestTemplate qui va devenir déprécié sous peu.
Créons un simple UtilisateurWebClient:
public class UtilisateurWebClient {
WebClient client = WebClient.create("http://localhost:8080");
// ...
}
Récupération d’une seule ressource :
Mono<Utilisateur> utilisateurMono = client.get()
.uri("/utilisateurs/{id}", "1")
.retrieve()
.bodyToMono(Utilisateur.class);
utilisateurMono.subscribe(System.out::println);
Récupération d’une collection :
Flux<Utilisateur> utilisateursFlux = client.get()
.uri("/utilisateurs")
.retrieve()
.bodyToFlux(Utilisateur.class);
employeeFlux.subscribe(System.out::println);