调试 RestEasy RestClient
Debugging RestEasy RestClient
我正在使用 quarkus 中的框架为 mandrill 构建一个休息客户端 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)returns 错误响应(例如,如果我的密钥错误),那么我正在使用的变量存储响应没有得到响应。相反,我向我的应用程序公开的 REST API 围绕着它,填充了来自 Mandrill 的响应。
这是预期的行为吗?我如何在 Quarkus 中调试 rest 客户端实现的输出?
正在调用的 REST API 是 https://mandrillapp.com/api/docs/users.JSON.html#method=ping2
如果你希望在发生错误时能够得到响应的主体,我建议你使用javax.ws.rs.core.Response
作为响应类型。
你也可以走另一条路,使用 ExceptionMapper
处理异常
我正在使用 quarkus 中的框架为 mandrill 构建一个休息客户端 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)returns 错误响应(例如,如果我的密钥错误),那么我正在使用的变量存储响应没有得到响应。相反,我向我的应用程序公开的 REST API 围绕着它,填充了来自 Mandrill 的响应。
这是预期的行为吗?我如何在 Quarkus 中调试 rest 客户端实现的输出?
正在调用的 REST API 是 https://mandrillapp.com/api/docs/users.JSON.html#method=ping2
如果你希望在发生错误时能够得到响应的主体,我建议你使用javax.ws.rs.core.Response
作为响应类型。
你也可以走另一条路,使用 ExceptionMapper
处理异常