@DeleteMapping("/{productId}")
public void productRemove(@PathVariable("productId") Long productId) {
log.info("productRemove()");
productService.remove(productId);
}
여기서 @PathVariable대신에 @RequestParam으로 바꿀수 있을까?
네, @RequestParam을 사용할 수 있습니다. 하지만, 두 어노테이션은 약간 다른 방식으로 작동하므로 코드를 약간 수정해야 합니다.
@PathVariable은 URL 경로의 일부로 전달되는 값을 가져올 때 사용됩니다. 위의 코드에서는 productId가 경로의 일부로 포함되어 있습니다. 예를 들어, /product/123과 같은 요청에서 123이 productId가 됩니다.
@RequestParam은 URL의 쿼리 매개변수로 전달되는 값을 가져올 때 사용됩니다. 이 경우, 요청은 /product?productId=123과 같은 형식이 됩니다.
@RequestParam을 사용하려면 코드를 다음과 같이 수정해야 합니다:
java
Copy code
@DeleteMapping
public void productRemove(@RequestParam("productId") Long productId) {
log.info("productRemove()");
productService.remove(productId);
}
이렇게 수정한 후에는 요청을 다음과 같이 전송해야 합니다: /product?productId=123.
@RequestParam을 사용하면 경로 대신 쿼리 매개변수를 사용하여 productId를 전달합니다. 두 어노테이션 중 어떤 것을 사용할지는 API 디자인과 개인 취향에 따라 달라집니다.