所以我有这个接口:
public Map<String, Object> myFunc(@RequestBody @Valid MyPrivateEntity body) {}
它被标记为@RequestBody和@Valid
问题是,如果我在调用此API时省略了正文,我会收到以下错误消息:
{
"title": "Failed to parse request",
"detail": "Required request body is missing: public com.privatePackage.misc.service.rest.MyPrivateEntity com.privatePackage.misc.service.rest.MyPrivateResource.myFunc(java.lang.String, com.privatePackage.misc.service.rest.MyPrivateEntity)",
"status": 400
}
我不希望错误消息包含类名和路径,而只希望“缺少必需的请求正文”。
我怎么能做到这一点?
谢谢
3条答案
按热度按时间dwbf0jvd1#
尝试
@ControllerAdvice
以自定义您的消息。参考资料:
https://ittutorialpoint.com/spring-rest-handling-empty-request-body-400-bad-request/
bqujaahr2#
试试这个代码
或者用这种方式
参考文献:https://www.baeldung.com/spring-boot-bean-validation
irtuqstp3#
如果您只需要对这个端点进行更多的控制,那么我建议将请求正文标记为可选,如果为空则签入方法,然后返回您想要显示的任何消息。