how to configure spring-data-rest search method path with @PathVariable

前端 未结 2 1368
遇见更好的自我
遇见更好的自我 2021-01-15 22:18

I want to customize my spring-data-rest search method path by passing parameter as a path variable like follows

http://localhost:8080/orders/search/customers         


        
相关标签:
2条回答
  • 2021-01-15 22:47

    You can use custom handler similar to this:

    @RepositoryRestController
    public class OrderController {
    
        @Autowired
        OrderRepository orderRepository;
    
        @GetMapping("/orders/search/customers/{id}")
        public @ResponseBody ResponseEntity<?> getByCustomers(@PathVariable Integer customer) {
            Order order = orderRepository.findOne(id);
            if(order == null) return ResponseEntity.status(HttpStatus.NOT_FOUND).body(null);
            Resource<Order> resource = new Resource<Order>(order); 
            return ResponseEntity.ok(resource);
        }
    }
    

    More about this can be found here.

    0 讨论(0)
  • 2021-01-15 22:48

    Use HttpServletRequest to get the request url:

    findByCustomer(@PathVariable("customerId") Integer customer, HttpServletRequest request){
        String request = request.getRequestURL().toString(); // StringBuffer, so use append if you want to...
        [...]
    }
    

    also you can use request.getQueryString() to get the query part after ?.

    0 讨论(0)
提交回复
热议问题