使用VndErrors进行错误处理,但未在响应错误主体中获取“链接”属性

时间:2019-04-08 14:12:46

标签: spring-boot spring-mvc exception spring-hateoas

我在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>

0 个答案:

没有答案