스프링 - @PathVariable

@PathVariable이라는 Spring 주석은 메소드 매개변수가 URI 템플릿 변수에 연결되어야 함을 지정합니다.

@GetMapping("/api/products/{id}")
@ResponseBody
public String getProductsById(@PathVariable String id) {
    return "ID: " + id;
}


/api/products/{id}에 대한 간단한 GET 요청은 추출된 id 값으로 getProductsById를 호출합니다.

http://localhost:8080/api/products/333 
---- 
ID: 333


경로 변수 이름을 지정할 수도 있습니다.

@GetMapping("/api/products/{id}")
@ResponseBody
public String getProductsById(@PathVariable("id") String productId) {
    return "ID: " + productId;
}


그들 모두를 지배하는 하나의 클래스 🪄



필요하지 않은 경로 변수를 처리하는 모범 사례는 Java Optional과 결합하는 것입니다. 이러한 방식으로 예외와 논리를 모두 처리할 수 있습니다.

@GetMapping(value = { "/api/products", "/api/products/{id}" })
@ResponseBody
public String getProducts(@PathVariable Optional<String> id) {
    if (id.isPresent()) {
        return "ID: " + id.get();
    } else {
        return "ID missing";
    }
}


이제 요청에 경로 변수 ID를 지정하지 않으면 기본 응답을 얻습니다.

http://localhost:8080/api/employeeswithoptional 
----
ID missing 

좋은 웹페이지 즐겨찾기