
- 리소스를 추가, 생성할 때 사용된다.
- 클라이언트가 서버에게 데이터를 제출할 때 주로 사용된다.
- HTTP Body에 데이터를 숨겨 보내기 때문에 데이터를 조금 더 안전하게 보낼 수 있다.
- TEXT, HTML, JSON등 여러 형식의 데이터를 사용할 수 있다.
@RestController
@RequestMapping("/api")
public class PostApiController {
@PostMapping("/post")
public String post(
@RequestBody BookRequest bookRequest
) {
System.out.println(bookRequest);
return bookRequest.toString();
}
@PostMapping("/user")
public UserRequest user(
@RequestBody
UserRequest userRequest
) {
return userRequest;
}
}
매개변수에 있는 주소를 통해 POST 방식으로 데이터를 받는다.
HTTP Body를 통해 들어온 데이터를 저장한다.
Json으로 받은 데이터와 객체의 변수명이 모두 같다면 바로 객체로 만들 수 있다.
@Data
@AllArgsConstructor
@NoArgsConstructor
public class BookRequest {
private String name;
private String number;
private String category;
}
@PostMapping("/post")
public String post(
@RequestBody BookRequest bookRequest
) {
return bookRequest.toString();
}
@JsonNaming(value = PropertyNamingStrategies.SnakeCaseStrategy.class)을 사용해서 객체를 만들면 Snake Case로 받은 변수명을 Camel Case를 사용하는 객체로 만들 수 있다.
또한, Camel Case로 만든 객체를 Sanke Case로 반환 할 수 있다.
@Data
@AllArgsConstructor
@NoArgsConstructor
@JsonNaming(value = PropertyNamingStrategies.SnakeCaseStrategy.class)
public class UserRequest {
private String userName;
private Integer userAge;
private String email;
}
@PostMapping("/user")
public UserRequest user(
@RequestBody
UserRequest userRequest
) {
return userRequest;
}
}