0Pricing
Spring Boot 4 Microservices & REST APIs · Lezione

WebClient per chiamate reattive

Chiami altri servizi in modo reattivo.

WebClient per chiamate reattive è una lezione Spring Boot 4 Microservices & REST APIs gratuita su CoddyKit. Questa è la lezione 3 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Spring Boot 4 Microservices & REST APIs, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Spring Boot 4 Microservices & REST APIs include 4 lezioni in totale.

Parti di questa lezione non sono ancora state tradotte e vengono mostrate in inglese.

What is WebClient

WebClient is the non-blocking, reactive HTTP client in Spring WebFlux. It replaces the blocking RestTemplate for reactive apps.

  • Returns Mono / Flux responses
  • 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/bodyToFlux for responses
  • onStatus for error handling
  • timeout and retry for resilience

Domande Frequenti

La lezione «WebClient per chiamate reattive» è gratuita?

Sì — il testo completo di «WebClient per chiamate reattive» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Spring Boot 4 Microservices & REST APIs, passa a CoddyKit PRO. Il corso Spring Boot 4 Microservices & REST APIs include 4 lezioni in totale.

Cosa imparerò in «WebClient per chiamate reattive»?

Chiami altri servizi in modo reattivo. Eserciti Spring Boot 4 Microservices & REST APIs con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Spring Boot 4 Microservices & REST APIs?

Non è richiesta alcuna esperienza precedente. Spring Boot 4 Microservices & REST APIs su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 3 di 4.

Quanto tempo richiede la lezione «WebClient per chiamate reattive»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Spring Boot 4 Microservices & REST APIs?

Sì. Ogni lezione Spring Boot 4 Microservices & REST APIs include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Nozioni di base su Mono e Flux
  2. Controller reattivi
  3. WebClient per chiamate reattive
  4. Backpressure e operatori
← Torna a Spring Boot 4 Microservices & REST APIs