의미 | CRUD | 멱등성 | 안정성 | Path Variable | Query Parameter | DataBody | |
---|---|---|---|---|---|---|---|
POST | 리소스 생성, 추가 | C | X | X | O | △ | O |
💡 멱등성이란? : 서버에 여러번 요청해도 항상 결과가 같다의 표현
💡 △ 표시 : 할 수는 있지만 하지 않는 것을 추천하는 것을 △로 표시함
@RestController
: 컨트롤러 기능을 하는 특정 클래스를 지정
@RequestMapping("/주소A")
: 해당 주소 처리
@PostMapping(path = "/주소B")
: 해당 클래스 안에 해당된 /주소A
하위에 /주소B
메서드를 처리
@RequestBody
: 해당 객체 클래스는 JSON으로 전달된 데이터를 해당 변수에 매칭해서 내려주게 됨
@JsonNaming
(value = PropertyNamingStrategies.SnakeCaseStrategy.class) : 요청이 JSON snake_case
로 들어오면 자동으로 camelCase
로 변환
@RestController
@RequestMapping("/api")
public class PostApiContoroller {
// TODO : BookRequest 객체 타입(JSON)으로 리턴
// @PostMapping("/post") // http://localhost:8080/api/post
// public BookRequest post(
// @RequestBody BookRequest bookRequest
// ) {
// System.out.println(bookRequest);
// return bookRequest;
// }
// TODO : String 타입으로 리턴
@PostMapping("/post") // http://localhost:8080/api/post
public String post(
@RequestBody BookRequest bookRequest
) {
System.out.println(bookRequest);
return bookRequest.toString();
}
}
상단바
도움말(Help)
사용자 지정 VM 옵션 편집(Edit Custom VM Options...)
-Dfile.encoding=UTF-8
-Dconsole.encoding=UTF-8
{"key1" : "value1",
"key2" : "value2",
"array" : [
10, 20, 30
],
"string_array" : [
"Aa", "Bb", "Cc"
],
"object_array" : [
{"key1" : "AA"},
{"key2" : "BB"},
{"key3" : "CC"}
]
}
@Data
@AllArgsConstructor
@NoArgsConstructor
// 요청이 snake_case로 들어오면 camelCase로 변환하는 어노테이션
@JsonNaming(value = PropertyNamingStrategies.SnakeCaseStrategy.class)
public class UserRequest {
private String userName;
private String phone;
private String email;
}