Spring Boot 4-mikrotjenester og REST API-er · leksjon

WebClient for reaktive kall

Kall andre tjenester reaktivt.

Leksjon 3 av 413 trinn

WebClient for reaktive kall er en gratis leksjon i Spring Boot 4-mikrotjenester og REST API-er på CoddyKit. Dette er leksjon 3 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Spring Boot 4-mikrotjenester og REST API-er, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Spring Boot 4-mikrotjenester og REST API-er inneholder totalt 4 leksjoner.

Hva er WebClient

WebClient er den ikke-blokkerende, reaktive HTTP-klienten i Spring WebFlux. Den erstatter den blokkerende RestTemplate i reaktive apper.

  • Returnerer Mono- / Flux-responser
  • Er fullstendig ikke-blokkerende i Netty-event-loopen

Bygge en WebClient

Opprett en instans med en basis-URL ved hjelp av builderen.

WebClient client = WebClient.builder()
    .baseUrl("https://api.example.com")
    .build();

En enkel GET

Kjed sammen get(), uri() og retrieve(), og konverter deretter body-en til en publisher.

Mono<User> user = client.get()
    .uri("/users/{id}", 1)
    .retrieve()
    .bodyToMono(User.class);
user.subscribe(System.out::println);

Hente en samling

Bruk bodyToFlux når responsen er en JSON-tabell.

Flux<User> users = client.get()
    .uri("/users")
    .retrieve()
    .bodyToFlux(User.class);

Sende en POST-body

Bruk post() og bodyValue() for å sende en request-body.

Mono<User> created = client.post()
    .uri("/users")
    .bodyValue(new User("Alice"))
    .retrieve()
    .bodyToMono(User.class);

Legge til headere

Legg til headere per forespørsel eller globalt på builderen.

Mono<String> result = client.get()
    .uri("/data")
    .header("Authorization", "Bearer token123")
    .retrieve()
    .bodyToMono(String.class);

Håndtere feilstatuser

retrieve() kaster som standard et unntak ved 4xx/5xx. Tilpass dette med onStatus.

Mono<User> user = client.get()
    .uri("/users/{id}", 99)
    .retrieve()
    .onStatus(HttpStatusCode::is4xxClientError,
        resp -> Mono.error(new RuntimeException("Not found")))
    .bodyToMono(User.class);

Sammensette kall med flatMap

Fordi resultatene er reaktive, kan De kjede avhengige HTTP-kall uten blokkering.

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));

Tidsavbrudd

Bruk operatoren timeout for å angi et tidsavbrudd, slik at trege oppstrømskilder feiler raskt.

Mono<User> user = client.get()
    .uri("/users/1")
    .retrieve()
    .bodyToMono(User.class)
    .timeout(Duration.ofSeconds(3));

Prøve på nytt ved feil

Bruk operatoren retry for å abonnere på nytt ved feil et fast antall ganger.

Mono<User> user = client.get()
    .uri("/users/1")
    .retrieve()
    .bodyToMono(User.class)
    .retry(2);

Registrere som en Bean

Konfigurer en delt WebClient-bean slik at den kan injiseres hvor som helst.

@Bean
public WebClient webClient() {
    return WebClient.builder()
        .baseUrl("https://api.example.com")
        .build();
}

Hurtigsjekk

Test forståelsen Deres av WebClient.

Oppsummering

De har lært å utføre ikke-blokkerende HTTP-kall med WebClient:

  • Bygg med WebClient.builder().baseUrl(...)
  • retrieve().bodyToMono/bodyToFlux for responser
  • onStatus for feilhåndtering
  • timeout og retry for robusthet
Gratis å komme i gang

Lær deg Java med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
24
Leksjoner
93

Ofte stilte spørsmål

Er leksjonen «WebClient for reaktive kall» gratis?

Ja – hele teksten i «WebClient for reaktive kall» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av Spring Boot 4-mikrotjenester og REST API-er-kurset, kan du oppgradere til CoddyKit PRO. Kurset i Spring Boot 4-mikrotjenester og REST API-er inneholder totalt 4 leksjoner.

Hva lærer jeg i «WebClient for reaktive kall»?

Kall andre tjenester reaktivt. Du øver på Spring Boot 4-mikrotjenester og REST API-er med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med Spring Boot 4-mikrotjenester og REST API-er?

Ingen tidligere erfaring er nødvendig. Spring Boot 4-mikrotjenester og REST API-er på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 3 av 4.

Hvor lang tid tar leksjonen «WebClient for reaktive kall»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne Spring Boot 4-mikrotjenester og REST API-er-leksjonen?

Ja. Alle Spring Boot 4-mikrotjenester og REST API-er-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. Grunnleggende om Mono og Flux
  2. Reaktive kontrollere
  3. WebClient for reaktive kall
  4. Backpressure og operatorer
← Tilbake til Spring Boot 4-mikrotjenester og REST API-er