Spring

RequestParam과 RequestBody의 차이

MDanderson 2023. 4. 28. 23:52

@RequestParam과 @RequestBody는 Spring에서 HTTP 요청의 데이터를 처리하는 데 사용되는 두 가지 어노테이션이며, 각각 서로 다른 유형의 데이터를 처리합니다.

@RequestParam:

주로 URL의 쿼리 파라미터를 처리하는 데 사용됩니다.
GET, POST 등 모든 HTTP 메서드에서 사용할 수 있습니다.
주로 단순한 데이터 타입의 경우 사용하며, 주로 폼 데이터와 함께 사용됩니다.
예: http://localhost:8080/api/users?id=1에서 id 값을 가져오는 경우 @RequestParam("id") int id를 사용합니다.

 


@RequestBody:

주로 HTTP 요청 본문의 내용을 처리하는 데 사용됩니다.
주로 POST, PUT 등의 메서드에서 사용되며, JSON 또는 XML과 같은 복잡한 구조를 가진 데이터를 처리하는 데 유용합니다.
요청 본문의 데이터를 자동으로 Java 객체로 변환할 수 있습니다.
예: JSON 데이터를 처리하는 경우 @RequestBody User user를 사용하면 요청 본문의 JSON 데이터를 User 클래스의 객체로 변환합니다.
간단한 예제로, 다음과 같은 HTTP 요청을 생각해 보겠습니다: