java / expert
Snippet
Simulation von Downstream-Fehlern mittels WebTestClient ExchangeFilterFunction
Beim Testen von Resilienzmustern wie Circuit Breakern in WebFlux-Anwendungen können Entwickler benutzerdefinierte `ExchangeFilterFunction`-Lambdas in `WebTestClient`- oder `WebClient`-Instanzen einspeisen, um den Ausführungssteuerfluss abzufangen und Netzwerkaufrufe durch synthetische HTTP-Antworten zu ersetzen.
snippet.java
java
1
2
3
4
5
6
7
8
9
10
11
12
public class CircuitBreakerTestFilter {public static ExchangeFilterFunction injectError(HttpStatus status) {return (request, next) -> {if (request.url().getPath().contains("/external-api")) {return Mono.just(ClientResponse.create(status).header("Content-Type", "application/json").build());}return next.exchange(request);};}}
spring
Erklärung
1
public static ExchangeFilterFunction injectError(HttpStatus status)
Factory-Methode, die einen funktionalen reaktiven Filter für HTTP-Client-Test-Interzeptoren liefert.
2
return (request, next) -> {
Implementiert das funktionale Interface zur Abbildung der Request-Response-Transformationslogik.
3
if (request.url().getPath().contains("/external-api")) {
Wertet Pfadkriterien im Steuerfluss aus, um externe Aufrufe gezielt abzufangen.
4
return Mono.just(ClientResponse.create(status)
Kürzt den Steuerfluss ab und gibt direkt eine synthetische reaktive ClientResponse zurück.