mahendra kawde
mahendra kawde

Reputation: 847

@PathVariable and @RequestParam not working together

I have below code in my controller:

@RequestMapping(value = "/child/{nodeId}/{relType}",method = RequestMethod.GET, produces=MediaType.APPLICATION_JSON)    
public Iterable<Node> getConnectedNodes(@RequestParam("page")int page, @RequestParam("size")int size, @PathVariable("nodeId") String nodeId, @PathVariable("relType") String relType) {
    return nodeService.getConnectedNodes(nodeId, relType,page,size);    
}

And this is the API URL I am hitting

http://localhost:8080/node/child/e17a64ff-dc2b-49b1-a995-67dba9413d67/Collegues?page=0&size=1

Here in debug mode I can see values of path variables, i.e. nodeId and relType, but can not see values of request param page and size which I am passing through my request in URL above.

What's wrong with @RequestParam?

Upvotes: 7

Views: 6433

Answers (2)

Tshepo Thoo
Tshepo Thoo

Reputation: 1

@Parameter(name = "nodeId", in = ParameterIn.PATH)

@Parameter(name = "relType", in = ParameterIn.PATH)*

@RequestMapping(value = "/child/{nodeId}/{relType}",method = RequestMethod.GET, produces=MediaType.APPLICATION_JSON)
public Iterable getConnectedNodes(@RequestParam("page")int page, @RequestParam("size")int size, @PathVariable("nodeId") String nodeId, @PathVariable("relType") String relType) { return nodeService.getConnectedNodes(nodeId, relType,page,size);

Upvotes: 0

Arpit Aggarwal
Arpit Aggarwal

Reputation: 29276

Can you try with below snippet:

@RequestMapping(value = "/child/{nodeId}/{relType}",method = RequestMethod.GET, produces=MediaType.APPLICATION_JSON)    
public Iterable<Node> getConnectedNodes(@RequestParam(value="page", required=false) int page, @RequestParam(value="size", required=false) int size, @PathVariable("nodeId") String nodeId, @PathVariable("relType") String relType) {
    return nodeService.getConnectedNodes(nodeId, relType,page,size);    
}

Upvotes: 3

Related Questions