Faire simple RestControllerErreur sur la génération d'auto lien sur la ressource paginable
@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);
}
}
Lorsque je tente d'obtenir la page curl "http://localhost:8080/datas?param=12&page=2"
ont un problème avec la génération d'auto-lien
{
"_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
}
}
À mon avis, l'auto lien devrait être http://localhost:8080/datas?param=12&page=2&size=10
.
Maintenant, je peux résoudre ce problème sans utiliser pageable dans les arguments, juste la page et la taille exacte des paramètres. Mais, j'espère qu'il ya une solution avec pageable
J'ai vu que dans le cas de printemps-données-repos auto ont un type de modèle. Mais je voudrais obtenir l'URL que j'ai demandé