1
做一個簡單的RestController錯誤的產生上分頁資源自給鏈接
@RestController
public class Controloler
@Value
class MyData {
int value;
}
@GetMapping(value = "/datas", produces = MediaTypes.HAL_JSON_VALUE)
public PagedResources<Resource<MyData>> getMyData(PagedResourcesAssembler<MyData> assembler,
@RequestParam(required = false) String param,
@PageableDefault Pageable pageRequest)
{
MyData data = new MyData(1);
Page<MyData> page = new PageImpl<>(Collections.singletonList(data), pageRequest, 100);
Link selfLink = linkTo(methodOn(Controloler.class).getMyData(assembler, param, pageRequest)).withSelfRel();
return assembler.toResource(page, selfLink);
}
}
當我試圖讓curl "http://localhost:8080/datas?param=12&page=2"
頁有自我鏈接生成
{
"_embedded": {
"myDataList": [
{
"value": 1
}
]
},
"_links": {
"first": {
"href": "http://localhost:8080/datas?param=12&page=0&size=10"
},
"prev": {
"href": "http://localhost:8080/datas?param=12&page=1&size=10"
},
"self": {
"href": "http://localhost:8080/datas?param=12"
},
"next": {
"href": "http://localhost:8080/datas?param=12&page=3&size=10"
},
"last": {
"href": "http://localhost:8080/datas?param=12&page=9&size=10"
}
},
"page": {
"size": 10,
"totalElements": 100,
"totalPages": 10,
"number": 2
}
}
一個問題在我看來,自鏈接應該是http://localhost:8080/datas?param=12&page=2&size=10
。
剛纔我可以解決這個問題,而不是在參數中使用可分頁,只是確切的參數頁面和大小。但是,我希望有一些解決方案可分頁
我已經看到,如果spring-data-rest self有一個模板類型。但我想得到我所要求的網址