[Spring Boot] POST

노성빈·2024년 4월 30일

Spring Boot

목록 보기
2/6
post-thumbnail

📌 POST

  • 리소스를 추가, 생성할 때 사용된다.
  • 클라이언트가 서버에게 데이터를 제출할 때 주로 사용된다.
  • 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;
    }
}

✏️ @Postmapping

매개변수에 있는 주소를 통해 POST 방식으로 데이터를 받는다.


✏️ @RequestBody

HTTP Body를 통해 들어온 데이터를 저장한다.




📌 POST 방식

✏️ Json의 Key와 Java의 변수명을 동일하게

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();
    }

✏️ Json의 Key를 Snake Case로 받았을 경우

@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;
    }
}

0개의 댓글