데이터를 HTTP 요청의 바디(body)에 담아서 전송하는 방법
key:value의 형태
@JsonNaming(PropertyNamingStrategies.SnakeCaseStrategy.class) 추가해야 한다.string 문자number 숫자(소숫점, int, double, float)boolean true/false{ } Object[ ] array 배열 안의 객체는 같은 자료형만 가능{
"key": "value",
"array": [
10,20,30 //같은 자료형만 가능
],
"stringArray": [ //문자열 배열
"홍길동", "자바", "스프링"
],
"objectArray": [//object 안에 array 가능
{
"name": "홍길동"
},
{
"name": "자바"
},
{
"name":"스프링"
}
]
}
@RestControllerREST 컨트롤러, 모든 메서드는 HTTP 응답을 통해 데이터 반환@RequestMappingURL 매핑@PostMappingPost 요청에 대한 매핑, 요청을 처리할 때 해당 요청의 데이터를 객체로 변환하여 처리해야 함@RequestBodyPost, Put 방식에서 HTTP Body로 들어오는 데이터를 자바 객체로 매핑@Data해당 클래스가 가지고 있는 메서드 자동 생성@AllArgsConstructor전체 파라미터를 가지고 있는 생성자 생성@NoArgsConstructor기본 생성자 생성@JsonNaming(PropertyNamingStrategies.SnakeCaseStrategy.class)
요청이 snake case로 들어오면 자동적으로 해당 클래스의 변수들을 snake case로 매핑
package com.example.restapi.controller.restapi.controller;
import com.example.restapi.model.BookRequest;
import com.example.restapi.model.UserRequest;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController // REST 컨트롤러, 모든 메서드는 HTTP 응답을 통해 데이터 반환
@RequestMapping("/api") // URL 매핑
public class PostApiController {
@PostMapping("/user") // Post 요청에 대한 매핑
//Post 방식은 요청을 처리할 때, 해당 요청의 데이터를 객체로 변환하여 처리해야 함
public UserRequest post(@RequestBody UserRequest userRequest){
// RequestBody: Post, Put 방식에서 HTTP Body로 들어오는 데이터를 자바 객체로 매핑
System.out.println(userRequest);
return userRequest;
}
}
package com.example.restapi.model;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data // 해당 클래스가 가지고 있는 메서드 자동 생성
@AllArgsConstructor // 전체 파라미터를 가지고 있는 생성자 생성
@NoArgsConstructor // 기본 생성자 생성
@JsonNaming(PropertyNamingStrategies.SnakeCaseStrategy.class)
//요청이 snake case로 들어오면 자동적으로 해당 클래스의 변수들을 snake case로 매핑
public class UserRequest {
private String name;
private String number; //snake case로 int 사용 시 Integer로 변경
private String email;
}
Json 형태로 BODY에 데이터를 보내었고, 잘 받아와지는 것을 확인할 수 있다.


