스프링 프레임워크에서 비동기 통신, 즉 API 통신을 구현하기 위해 @RequestBody와 @ResponseBody 어노테이션을 사용한다.
// 객체
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 형식으로 매핑해서 응답한다.
참고
[Spring] @RequestBody / @ResponseBody 어노테이션 이란?