Я обновил существующее приложение Spring Boot с зависимостью spring-boot-starter-hateoas
с 1.5.4
до 2.1.5
.
После этого были прерваны тесты, которые проверяли конечные точки, возвращающие List<E extends ResourceSupport>
.
@GetMapping(produces = MediaTypes.HAL_JSON_VALUE)
public HttpEntity<List<SomeResource>> list() {
return /* ... */;
}
Прежнее свойство _links
впоследствии создается как links
, что нарушает ожидания некоторых клиентов. Оказалось, что существующий API недействителен HAL . Рекомендуется перенести сигнатуру метода, возвращающую Resources<SomeResource>
, что также нарушает ожидание клиента, поскольку оно перемещает список в новое свойство _embedded
.
@GetMapping(produces = MediaTypes.HAL_JSON_VALUE)
public HttpEntity<Resources<SomeResource>> list() {
return /* ... */;
}
Есть ли решение обновить Spring Boot до версии 2.x, но сохранить текущий контракт интерфейса стабильным?