카테고리 없음

Spring에서 요청 데이터를 전달하는 3가지 방법

Tech_JINI 2025. 5. 12. 18:37
{
  "name": "handcream",
  "price": 15000,
  "description": "촉촉해요"
}

1. 쿼리 스트링 (Query String)

주소에 데이터를 key=value 형태로 붙여 전달하는 방식.

http://localhost:8080/products?name=_____

 

value의 이름으로 쿼리스트링이 날라온다. 

@RequestMapping(value = "/product", method = RequestMethod.POST)
    public void saveProduct(@RequestParam(value="name") String productName){
        productService.saveProduct(productName);
    }

 

특징

  • @RequestParam 사용
  • 간단한 데이터 전송에 적합

 

2. 경로 변수 (Path Variable)

주소의 일부에 데이터를 포함시키는 방식.

http://localhost:8080/products/{id}

 

@GetMapping("/products/{id}")
public Product getProduct(@PathVariable Long id) {
    return productService.getProductById(id);
}

특징

  • @PathVariable 사용
  • 리소스 식별자(ID 등)를 전달할 때 주로 사용

 

3. body에 데이터를 받아오는 방법 (Request Body)

JSON 형태로 body에 데이터를 담아 전달하는 방식.

 

JSON = JavaScript Object Notation

JSON 형태 = key-value 형태

// 예시 JSON
product = {
   name: "handcream",
   price: 15000,
   description: "촉촉해요"
}

 

@PostMapping("/products")
public void saveProduct(@RequestBody ProductDto productDto) {
    productService.saveProduct(productDto);
}

특징

  • @RequestBody 사용
  • 여러 데이터를 함께 보낼 때 적합

안에 있는 데이터 부를 때

product.name

product.price

// JSON 데이터 접근 예시 (자바스크립트)
var product = {
  name: "handcream",
  price: 15000,
  description: "촉촉해요"
};

console.log(product.name);  // handcream
console.log(product.price); // 15000