我想通过将参数作为路径变量传递来自定义我的spring-data-rest搜索方法路径,如下所示
http://localhost:8080/orders/search/customers/{customerId}
findByCustomer(@PathVariable("customerId") Integer customer);
搜索资源列表链接如下
http://localhost:8080/orders/search/customers/%7BcustomerId%7D
如何使用路径参数公开搜索网址?
答案 0 :(得分:1)
您可以使用与此类似的自定义处理程序:
@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);
}
}
有关此内容的更多信息,请here。
答案 1 :(得分:0)
使用HttpServletRequest
获取请求网址:
findByCustomer(@PathVariable("customerId") Integer customer, HttpServletRequest request){
String request = request.getRequestURL().toString(); // StringBuffer, so use append if you want to...
[...]
}
您也可以使用request.getQueryString()
在?
之后获取查询部分。