Перенос списка ресурсов HAL без нарушения интерфейса - PullRequest
0 голосов
/ 23 мая 2019

Я обновил существующее приложение 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, но сохранить текущий контракт интерфейса стабильным?

...