WebClient pour les appels réactifs
Appelez d'autres services de manière réactive.
WebClient pour les appels réactifs est une leçon Spring Boot 4 Microservices & REST APIs gratuite sur CoddyKit. Ceci est la leçon 3 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Spring Boot 4 Microservices & REST APIs, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Spring Boot 4 Microservices & REST APIs comprend 4 leçons au total.
Certaines parties de cette leçon n'ont pas encore été traduites et s'affichent en anglais.
What is WebClient
WebClient is the non-blocking, reactive HTTP client in Spring WebFlux. It replaces the blocking RestTemplate for reactive apps.
- Returns
Mono/Fluxresponses - Fully non-blocking on the Netty event loop
Building a WebClient
Create an instance with a base URL using the builder.
WebClient client = WebClient.builder()
.baseUrl("https://api.example.com")
.build();A Simple GET
Chain get(), uri(), retrieve(), then convert the body to a publisher.
Mono<User> user = client.get()
.uri("/users/{id}", 1)
.retrieve()
.bodyToMono(User.class);
user.subscribe(System.out::println);Fetching a Collection
Use bodyToFlux when the response is a JSON array.
Flux<User> users = client.get()
.uri("/users")
.retrieve()
.bodyToFlux(User.class);Sending a POST Body
Use post() and bodyValue() to send a request body.
Mono<User> created = client.post()
.uri("/users")
.bodyValue(new User("Alice"))
.retrieve()
.bodyToMono(User.class);Adding Headers
Attach headers per request or globally on the builder.
Mono<String> result = client.get()
.uri("/data")
.header("Authorization", "Bearer token123")
.retrieve()
.bodyToMono(String.class);Handling Error Statuses
retrieve() throws on 4xx/5xx by default. Customize with onStatus.
Mono<User> user = client.get()
.uri("/users/{id}", 99)
.retrieve()
.onStatus(HttpStatusCode::is4xxClientError,
resp -> Mono.error(new RuntimeException("Not found")))
.bodyToMono(User.class);Composing Calls with flatMap
Because results are reactive, you can chain dependent HTTP calls without blocking.
Mono<Order> order = client.get()
.uri("/users/{id}", 1)
.retrieve()
.bodyToMono(User.class)
.flatMap(u -> client.get()
.uri("/orders?userId={id}", u.getId())
.retrieve()
.bodyToMono(Order.class));Timeouts
Apply a timeout with the timeout operator so slow upstreams fail fast.
Mono<User> user = client.get()
.uri("/users/1")
.retrieve()
.bodyToMono(User.class)
.timeout(Duration.ofSeconds(3));Retrying on Failure
Use the retry operator to re-subscribe on error a fixed number of times.
Mono<User> user = client.get()
.uri("/users/1")
.retrieve()
.bodyToMono(User.class)
.retry(2);Registering as a Bean
Configure a shared WebClient bean so it can be injected anywhere.
@Bean
public WebClient webClient() {
return WebClient.builder()
.baseUrl("https://api.example.com")
.build();
}Quick Check
Test your understanding of WebClient.
Recap
You learned to make non-blocking HTTP calls with WebClient:
- Build with
WebClient.builder().baseUrl(...) retrieve().bodyToMono/bodyToFluxfor responsesonStatusfor error handlingtimeoutandretryfor resilience
Questions Fréquemment Posées
La leçon « WebClient pour les appels réactifs » est-elle gratuite ?
Oui — le texte complet de « WebClient pour les appels réactifs » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Spring Boot 4 Microservices & REST APIs, passe à CoddyKit PRO. Le cours Spring Boot 4 Microservices & REST APIs comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « WebClient pour les appels réactifs » ?
Appelez d'autres services de manière réactive. Tu pratiques Spring Boot 4 Microservices & REST APIs avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer Spring Boot 4 Microservices & REST APIs ?
Aucune expérience préalable n'est requise. Spring Boot 4 Microservices & REST APIs sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 3 sur 4.
Combien de temps prend la leçon « WebClient pour les appels réactifs » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon Spring Boot 4 Microservices & REST APIs ?
Oui. Chaque leçon Spring Boot 4 Microservices & REST APIs inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Bases de Mono et Flux
- Contrôleurs réactifs
- WebClient pour les appels réactifs
- Contrôle de la contre-pression et opérateurs