我在ControllerAdvice类中对VndErrors使用spring HATEOAS错误处理。根据VndErrors规范,它提供了3个响应属性:logref,消息和链接。 就我而言,我在响应中正确获取了logref和message,但在框架中以某种方式将“链接”替换为“链接”。 找不到相同的原因。
我尝试调试代码,可以看到VndErrors对象已正确创建,该对象下包含“ Links”属性。但是,当我看到有关Swagger或Curl的响应时,它是“链接”。 我也尝试在VndErrors方法中传递Link参数,但是没有运气。
这是我的ControllerAdvice类的代码段:
ResponseEntity<VndErrors> generateResEntity(HttpStatus status, String exceptionMessage) {
def xB3TraceId = MDC.get('X-B3-TraceId') ?: status.reasonPhrase
ResponseEntity.status(status).contentType('application/vnd.error+json').body(new VndErrors(xB3TraceId, exceptionMessage))
}
预期结果:
[{“ logref”:“ abscdcd15241”,“ message”:“请求正文中有未知属性,请检查API合约以了解详细信息。未知属性:abc”,“链接” :[] < / p>
实际结果:
[{“ logref”:“ abscdcd15241”,“ message”:“请求正文中有未知属性,请检查API合约以了解详细信息。未知属性:abc”,“链接” :[] < / p>