我有一个 API,当我通过邮递员调用它时,它会在以下情况下给出以下响应:
案例1:状态码:200
{"success": "student record is present",
"error": null}
案例2:状态码:422
{"success": null,
"error": "studentname should not contain numerics"}
我想通过使用 quarkus/java 项目的 microprofile restclient 来实现上述两种情况的相同结果。所以创建了以下类
Java DTO 类:
public class StudentResponse{
private String success;
private String error;
public String getSuccess() {
return success;
}
public void setSuccess(String success) {
this.success = success;
}
public String getError() {
return error;
}
public void setError(String error) {
this.error = error;
}
@Override
public String toString() {
return "StudentResponse [success=" + success + ", error=" + error + "]";
}
}
休息客户端类:
包 com.tatadigital.rest.service;
@RegisterRestClient(configKey = "student-client-api")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public interface StudentService {
@POST
@Path("/checkStudent")
StudentResponse checkStudent(@RequestBody StudentCheck studentCheck);
}
最后,我通过应用程序对其进行了测试,对于 case-1,按预期接收状态码为 200 的响应正文。但是对于 case-2,因为状态码是 422,所以会抛出异常并得到处理,但是在异常对象中我们有响应对象,并且在其中我们有响应实体。此响应实体为空,甚至 studentResponse 也为空。我想在 422 状态代码案例中获取错误消息(json 响应)和 microprofile 休息客户端案例。有什么方法/建议可以实现这一目标?