Я использую Spring Boot (2.1.1) для автоматического создания HAL REST API моих JpaRepository
интерфейсов.
В большинстве случаев эти интерфейсы пусты, например:
public interface LevelRepository extends JpaRepository<Level, Long> {}
Когда я открываю базовый путь REST, для levels
создается следующая ссылка:
"levels": {
"href": "http://localhost:8080/admin/levels{?page,size,sort}",
"templated": true
}
Когда я следую http://localhost:8080/admin/levels?size=10
, я получаю ожидаемую страницу 0 и ее 10 элементов.
Но данная ссылка для себя:
"self": {
"href": "http://localhost:8080/admin/levels{&sort}",
"templated": true
}
Я бы ожидал:
http://localhost:8080/admin/levels{?page,size,sort}
или
http://localhost:8080/admin/levels?page=0&size=10{&sort}
Я не уверен, что это ошибка или особенность? Можно ли получить ожидаемое поведение?
Я нашел следующий вопрос по теме: Ошибка при создании собственной ссылки на доступном для ресурсов ресурсе
Но данное решение не помогает, так как я уже использую более новую версию.
Дополнительная информация (зачем она мне нужна?)
Такое поведение прерывает поток следующих ссылок на стороне клиента.
Если пользователь хочет перейти непосредственно на страницу X или если он хочет изменить размер страницы, исходная ссылка должна быть повторно использована.
Небольшой обходной путь, но он не так хорош, как шаблонизация и прямое следование данной ссылке на себя.