빵구의 개발 메꾸기

스프링 부트(Spring Boot)를 활용한 POST REST API 구현 본문

BACK-END/SPRING BOOT

스프링 부트(Spring Boot)를 활용한 POST REST API 구현

bkjo94 2022. 5. 8. 23:05

스프링 부트(Spring Boot)를 활용하여 HTTP Method중 하나인 POST REST API를 구현하는 방법에 대해 알아보자.

POST REST API를 활용하는 경우는 여러가지가 있는데 한가지씩 과정을 보여주고자 한다.

@RestController는 해당 class가 RestAPI를 처리하는 Controller로 등록하겠다는 의미에서 사용된다.

 

 

<다중 파라미터를 Map으로 받을 경우>

@PostMapping에 path라는 속성으로 요청이 들어올 세부 URL에 대한 path를 지정해준다.

② REST API 요청 시 body에 담겨 들어오는 데이터들을 받기 위해 메서드의 파라미터 정보에 대해서 @RequestBody를

    넣고 타입은 Map으로 설정한다.

POST로 설정한 뒤 요청을 보낼 URL인 localhost:8080/api/test/post-method1을 셋팅한다.

④ body안에 json형식의 데이터를 보낼 것이기 때문에 Content-Type은 application/json으로 셋팅한다.

⑤ 데이터를 작성하기 위해 Body를 클릭한다.

⑥ raw를 클릭하고 JSON으로 셋팅한다.

⑦ JSON 형식의 보낼 데이터를 작성한다.

Send 버튼을 클릭하여 POST REST API를 호출한다.

return 받은 값을 보면 정상적으로 Body에 담긴 것을 확인할 수 있다.

 

 

 

<잘못된 예시>

① 이번엔 REST API 호출 시 보낸 데이터가 메서드 내부에 정상적으로 들어오지 않을 경우를 보여주고자 한다.

    메서드의 파라미터 정보에 @RequestBody를 빼고 설정한다.

Send 버튼을 클릭하여 POST REST API를 호출한다.

return 받은 값을 보면 Body에 아무것도 안담긴 것을 보아 @RequestBody는 반드시 넣어줘야 하는 것을 볼 수 있다.

 

 

 

<다중 파라미터를 VO로 받을 경우>

① API 호출 시 URL에 보낼 데이터의 key 값들에 대해 일치하는 모델 class의 property들을 정의하고 getter setter

    메서드를 만든다.

@PostMapping에 path라는 속성으로 요청이 들어올 세부 URL에 대한 path를 지정해준다.

REST API 요청 시 body에 담겨 들어오는 데이터들을 받기 위해 메서드의 파라미터 정보에 대해서 @RequestBody를

    넣고 타입은 모델 class로 설정한다.

POST로 설정한 뒤 요청을 보낼 URL인 localhost:8080/api/test/post-method2을 셋팅한다.

⑤ 데이터를 작성하기 위해 Body를 클릭한다.

⑥ raw를 클릭하고 JSON으로 셋팅한다.

⑦ JSON 형식의 보낼 데이터를 작성한다.

 Send 버튼을 클릭하여 POST REST API를 호출한다.

 return 받은 값을 보면 정상적으로 Body에 담긴 것을 확인할 수 있다.

 

 

 

<@JsonProperty 활용 방법>

JAVA에서는 카멜 케이스(Camel Case)로 작성되어 있지만 API를 요청하는 쪽에서는 
스네이크 케이스(Snake Case)로 데이터를 보내는 경우가 있다.

① 카멜 케이스(Camel Case)인 footSize property에 대해 @JsonProperty("foot_size") 스네이크 케이스(Snake Case)로

    설정해주게 되면 API 요청 시 보내는 JSON 데이터의 key 값이 foot_size로 들어와도 footSize로 매핑이 된다.

 @PostMapping에 path라는 속성으로 요청이 들어올 세부 URL에 대한 path를 지정해준다.

 REST API 요청 시 body에 담겨 들어오는 데이터들을 받기 위해 메서드의 파라미터 정보에 대해서 @RequestBody를

    넣고 타입은 모델 class로 설정한다.

 POST로 설정한 뒤 요청을 보낼 URL인 localhost:8080/api/test/post-method2을 셋팅한다.

⑤ 데이터를 작성하기 위해 Body를 클릭한다.

⑥ raw를 클릭하고 JSON으로 셋팅한다.

⑦ JSON 형식의 보낼 데이터를 작성한다.

 Send 버튼을 클릭하여 POST REST API를 호출한다.

 return 받은 값을 보면 API 요청 시 보낸 JSON 데이터의 key 값과 모델 class의 property와 일치하지 않은 foot_size

   까지 정상적으로 Body에 담긴 것을 확인할 수 있다.

Comments