Мне нужно сделать еще один HTTP-вызов в случае, если мой запрос WebClient получит ошибку HTTP 4xx или 5xx.
В настоящее время у меня есть следующее:
webClient.post()
.uri(myUri)
.headers(myHeaders)
.body(myBody)
.retrieve()
.onStatus(HttpStatus::isError, responseStrategy::errorResponseCallback)
...
Мой ответный ответ об ошибкевыглядит следующим образом:
public Mono<? extends Throwable> errorResponseCallback(ClientResponse clientResponse) {
... make ugly new HTTP request here
return Mono.error(...);
}
Мне не нравится идея встраивания обработки ошибок в обратный вызов, который должен только возвращать Mono, содержащий исключение.
Какой правильный подходдля этой ситуации?