У меня есть декларативный клиентский интерфейс, и я использую его с контроллера. Я полностью ожидаю, что аутентификация с моей службой сейчас не удастся, но мне любопытно, почему я не могу управлять этим исключением ...
@Controller("/order-gateway/orders")
public class OrderController {
private final OrderClient client;
public OrderController(OrderClient client) {
this.client = client;
}
@Post
@Produces(MediaType.TEXT_PLAIN)
public Single<String> createOrder() {
return client.createOrder();
}
}
Все вышеперечисленное - всего лишь пример кода, но когда клиент вызывает конечную точку службы, он не авторизуется и возвращает 401. Но мой контроллер выше возвращает 500, потому что client.createOrder()
генерирует исключение из получения 401.
Я вроде как ожидал, что смогу справиться с этим, но я пробовал doOnErrors
и другие методы, которые, похоже, не мешают 500. Во всяком случае, я бы хотел увеличить 401 или, по крайней мере, обработать еще 500 изящно. Но я даже не знаю, как получить код состояния вызова службы из асинхронного ответа.