WebClient for reaktive kall
Kall andre tjenester reaktivt.
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/bodyToFluxfor responseronStatusfor feilhåndteringtimeoutogretryfor robusthet
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
- Grunnleggende om Mono og Flux
- Reaktive kontrollere
- WebClient for reaktive kall
- Backpressure og operatorer