Я использую пружинную обработку ошибок HATEOAS с VndErrors в моем классе ControllerAdvice. Согласно спецификации VndErrors в ответе предоставляется 3 атрибута: logref, message и links.
В моем случае я получаю logref и сообщение правильно в ответ, но каким-то образом «ссылки» заменяется на «ссылку» в рамках.
Не могу найти причину для того же.
Я попытался отладить код и увидел, что объект VndErrors был создан правильно, который содержит атрибут «Ссылки» под ним. Но когда я вижу ответ на Swagger или Curl, это «Ссылка».
Я также попытался передать параметр Link в методе VndErrors, но безуспешно.
Вот фрагмент кода из моего класса 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", "links" : []
Фактические результаты:
[{"logref": "abscdcd15241", "message": "В теле запроса есть неизвестные свойства, проверьте подробности в контракте API. Неизвестное свойство: abc", "ссылка" : []