[Spring] @RequestBody, @ResponseBody 이해하기

kyungjoon·2022년 3월 3일
3

스프링 프레임워크에서 비동기 통신, 즉 API 통신을 구현하기 위해 @RequestBody@ResponseBody 어노테이션을 사용한다.

  • 클라이언트 -> 서버 요청 : @RequestBody
  • 서버 -> 클라이언트 응답 : @ResponseBody

@RequestBody

json 기반의 HTTP Body를 자바 객체로 변환

// 객체
public class Entity{
	private Long id;
    private String name;
    private String address;
}

// API Controller
@PostMapping("/api/post")
public void requestTest(@RequestBody Entity entity) {
    System.out.println("id = " + entity.id);
    System.out.println("name = " + entity.name);
    System.out.println("address = " + entity.address);
}

다음과 같은 내용을 HTTP Body에 담아서 POST 요청을 보내게 될 경우

POST /api/post HTTP/1.1
 
{
    "id": 1,
    "name": "user1"
}

@RequestBody 는 본문의 내용을 매핑해서 Entity 객체를 생성한다.

  • entity.id == 1
  • entity.name == "user1"
  • entity.address == null

@ResponseBody

자바 객체를 json 기반의 HTTP Body로 변환

@RestController를 사용하는 경우 반환값에 자동으로 @ResponseBody 어노테이션이 붙게 된다. 따라서 자바 객체를 반환하면 알아서 Json 형식으로 매핑해서 응답한다.

참고

profile
하룻강아지

0개의 댓글