spring-hateoas
spring-hateoas copied to clipboard
Creating links with query params that are objects
I want to create a link to a controller method that does not use single @RequestParam annotations for each query parameter. Instead I pass an object containing all query parameters. This works fine despite that the self link I am constructing does not contain the query parameters that I am passing:
@GetMapping
public PagedModel<EntityModel<FooDto>> findBy(
@Valid Query query,
@PageableDefault(size = 5) Pageable pageable,
PagedResourcesAssembler<FooDto> assembler) {
final Link link =
linkTo(methodOn(Controller.class).findBy(query, pageable, assembler))
.withSelfRel()
.expand();
final Page<FooDto> fooList = fooService.findBy(query, pageable);
return assembler.toModel(fooList, link);
}
The result I get when requesting http://localhost:8080/foo?param1=bar looks like this:
{
"_links": {
"self": {
"href": "http://localhost:55560/foo"
}
},
"page": {
"size": 5,
"totalElements": 0,
"totalPages": 0,
"number": 0
}
}
It does not contain the query parameters in the self link. Any chance to make this work? I cannot find any documentation on query parameters when building links expect this one here: https://docs.spring.io/spring-hateoas/docs/current/reference/html/#server.link-builder.webmvc.methods.request-params which does not help me.
Thanks in advance :)
I want to create a link to a controller method that does not use single
@RequestParamannotations for each query parameter. Instead I pass an object containing all query parameters. This works fine despite that the self link I am constructing does not contain the query parameters that I am passing:@GetMapping public PagedModel<EntityModel<FooDto>> findBy( @Valid Query query, @PageableDefault(size = 5) Pageable pageable, PagedResourcesAssembler<FooDto> assembler) { final Link link = linkTo(methodOn(Controller.class).findBy(query, pageable, assembler)) .withSelfRel() .expand(); final Page<FooDto> fooList = fooService.findBy(query, pageable); return assembler.toModel(fooList, link); }The result I get when requesting
http://localhost:8080/foo?param1=barlooks like this:{ "_links": { "self": { "href": "http://localhost:55560/foo" } }, "page": { "size": 5, "totalElements": 0, "totalPages": 0, "number": 0 } }It does not contain the query parameters in the self link. Any chance to make this work? I cannot find any documentation on query parameters when building links expect this one here: https://docs.spring.io/spring-hateoas/docs/current/reference/html/#server.link-builder.webmvc.methods.request-params which does not help me.
Thanks in advance :)
Did you solve it, I have the same problem
Hello !
Any update ?
Hello, is it solved now?