В весна-Web RestController мы используем PagedResources
для создания ResponseEntities. У нас есть RequestMethod, который инициирует поиск фона для Elements в радиусе 5 км, если результат не достигнет 10 км, 20 км, пока мы не найдем какой-либо элемент.Как продлить PagedResourceAssembler
Поскольку мы теперь изменяем заданные параметры от Клиента (ресурс вызывается с заданным расстоянием), мы хотим вернуть измененное SearchDistance обратно клиенту. Фактический ответ, то будет что-то вроде этого:
{
"_links": {
"self": {
"href": "http://...
"templated": true
}
},
"_embedded": {
"parcelShopResourceList": [
{
"_id": "2760183530"
...
},
{
"_id": "2760128505"
...
},
{
"_id": "2760162267"
...
},
{
"_id": "2760196914"
...
},
{
"_id": "2760147255"
...
}
]
},
"page": {
"size": 200,
"totalElements": 5,
"totalPages": 1,
"number": 0
"searchDistance": 10
}
}
Теперь вопрос:
- Как я могу продлить
PagedResourcesAssembler
, поэтому он будет возвращать дополнительную информацию страницу?
Я думал, что это было бы достаточно, чтобы создать расширенный Page
, поэтому PagedResourcesAssembler
добавит дополнительную информацию на странице информации, но это было не так.
ResponseEntity.ok(pagedResourcesAssembler.toResource(page, resourceAssembler));
Затем я попытался, чтобы переопределить PagedResourcesAssembler
себя, но так как он использует много частных методов Переопределить из PagedResourcesAssembler.createResource
не очень полезно.
Я думаю, что я чего-то не хватает. Может ли кто-нибудь объяснить мне, как я могу добавить дополнительную информацию в свой ответ? Я уверен, что для этого есть намного более простой способ.
Поскольку я хочу добавить информацию, касающуюся всего списка, я не хочу вставлять эту информацию в один ресурс только для удобства.