在春天的Web RestController我们使用PagedResources
创建ResponseEntities。 我们有一个RequestMethod,它会在5km半径内触发元素的后台搜索,如果在10km,20km内没有任何结果,直到找到任何元素。如何扩展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
的覆盖是不是真的有用。
我想我完全错过了一些东西。可以请任何人向我解释如何在我的回复中添加更多信息?我相信这有一个更简单的方法。
由于我想添加一个关于整个List的信息,为了方便,我不想将这些信息插入到单个资源中。