我面临一个问题,在springboot中验证字段时抛出了一个zalando问题错误。我通过调用超级构造函数并传递所需的字段来扩展abstractthrowableproblem,从而定制了响应体。
我将status字段设置为bad\u request,然后将自定义对象传递给带有Map的'parameters'参数。
直到现在,一切都很好。我在响应体中得到了一个400错误的请求http状态代码以及自定义Map对象。
现在的问题是,“status”字段也出现在响应主体中,这是因为我在调用超级构造函数时设置了它。
我想知道如何只在http状态码部分中使用400,而不在响应体中使用400。我只需要在响应体中使用自定义Map对象。
Actual response:
Response Http status code - 400 BAD_REQUEST
Response body -
{
"status": 400,
"appError": "The name field that you filled in has Invalid special characters."
}
Expected response:
{
"appError": "The name field that you filled in has Invalid special characters."
}
我写的zalando问题类如下:
class MyAppZalandoProblem extends AbstractThrowableProblem {
Map<String, Object> myMap = new HashMap<>();
myMap.put("appError", "The name field that you filled in has Invalid special characters.");
MyAppZalandoProblem() {
super(null, null, Status.BAD_REQUEST, null, null, null, myMap);
}
}
1条答案
按热度按时间xmakbtuz1#
简短的回答
你就是不能。
这不是返回http问题的推荐方法:rfc7807
顺便说一句,zalando问题库的维护人员拒绝允许这种定制。