복붙노트

[SPRING] @PathVariable을 사용하여 spring-data-rest 검색 방법 경로를 구성하는 방법

SPRING

@PathVariable을 사용하여 spring-data-rest 검색 방법 경로를 구성하는 방법

다음과 같이 매개 변수를 경로 변수로 전달하여 spring-data-rest 검색 방법 경로를 사용자 정의하고 싶습니다.

http://localhost:8080/orders/search/customers/{customerId}

findByCustomer(@PathVariable("customerId") Integer customer);

검색 리소스는 다음과 같이 링크를 나열합니다.

http://localhost:8080/orders/search/customers/%7BcustomerId%7D

경로 매개 변수로 검색 URL을 노출하는 방법은 무엇입니까?

해결법

  1. ==============================

    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);
        }
    }
    

    여기에 대한 자세한 내용은 여기를 참조하십시오.

  2. ==============================

    2.요청 URL을 얻으려면 HttpServletRequest를 사용하십시오.

    요청 URL을 얻으려면 HttpServletRequest를 사용하십시오.

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

    또한 request.getQueryString ()을 사용하여? 뒤에 오는 쿼리 부분을 가져올 수 있습니다.

  3. from https://stackoverflow.com/questions/39866926/how-to-configure-spring-data-rest-search-method-path-with-pathvariable by cc-by-sa and MIT license