Отладка RestEasy RestClient
Я использую фреймворк в quarkus для создания клиента отдыха для API мандрилла
@RegisterRestClient
@Path("1.0")
@Produces("application/json")
@Consumes("application/json")
public interface MailService {
@POST
@Path("/messages/send-template.json")
JsonObject ping(JsonObject mandrillInput);
}
Это соответствующая часть моего application.properties
com.example.service.MailService/mp-rest/url=https:/mandrillapp.com/api
И мой пример ресурса
@Path("/hello")
public class ExampleResource {
@Inject
@RestClient
MailService mailService;
@Produces(MediaType.TEXT_PLAIN)
@GET
public String hello() {
System.out.print("In the API");
JsonObject key = Json.createObjectBuilder().add("key", "ABCD").build();
System.out.println("The json built is "+key);
JsonObject response = mailService.ping(key);
System.out.println("The response is " + response);
return "hello";
}
}
Я увидел, что если API, который я вызываю (в данном случае Mandrill), возвращает ответ с ошибкой (например, если мой ключ неверен), то переменная, которую я использую для хранения ответа, не получает ответа. Вместо этого REST API, который я показываю своему приложению, оборачивающемуся вокруг этого, заполняется ответом от Mandrill.
Это ожидаемое поведение? Как я могу отладить вывод реализации остального клиента в Quarkus?
1 ответ
Если вы хотите получать текст ответа при возникновении ошибки, я предлагаю вам использовать javax.ws.rs.core.Response
как тип ответа.
Вы также можете пойти другим путем и обработать исключения с помощью ExceptionMapper.