Инструменты:
Spring boot + Java 11
http клиент: WebClient
@Configuration
public class WebClientConfig {
@Bean
public HttpClient httpClient(){
return HttpClient.create()
.responseTimeout(Duration.ofSeconds(5));
}
@Bean
public WebClient webClient(){
HttpClient client = httpClient();
return WebClient.builder()
.clientConnector(new ReactorClientHttpConnector(client))
.build();
}
}
Вопрос:
Есть несколько http запросов в партнерский API, как залогировать тело ошибок в одном месте в ввиде json?
пример запроса:
private Mono<TwoFactorAuthResponse> retrieveTwoFactorTokenDetails(String accessToken, UserCredentials credentials) {
String uri = buildTokenUri();
return webClient.post()
.uri(uri)
.headers(headers -> headers.setBearerAuth(accessToken))
.bodyValue(credentials)
.retrieve()
.onStatus(HttpStatus::is4xxClientError, response -> Mono.error(new UserNotRegisteredException(USER_NOT_REGISTERED_MESSAGE)))
.onStatus(HttpStatus::is5xxServerError, response -> Mono.error(new ParnerEx(SERVER_ERROR_MESSAGE)))
.bodyToMono(TwoFactorAuthResponse.class);
}