빵구의 개발 메꾸기

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

BACK-END/SPRING BOOT

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

bkjo94 2022. 5. 11. 22:48

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

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

 

 

 

<구현 방법>

@DeleteMapping에 path 속성은 생략하고 세부 URL에 대한 path를 지정해준다.

    이 때 요청을 보내는쪽에서 /path-variable 뒤에 보낸 데이터를 대해 받기 위해서는 {}안에 변수명을 지정해주고

    이 변수명은 ②의 @PathVariable의 userId 속성에 값과 일치해야 한다.

② {}안에 변수명에 대해 @PathVariable의 userId 속성에 값과 일치해야 하며 변수명으로 들어온 값은

    long userId에 담기게 된다.

요청을 보내는쪽에서 ? 뒤의 쿼리 파라미터에 대한 데이터를 대해 받기 위해서 @RequestParam를 넣고 타입 뒤에 있는 변수명에는 API 요청 시 쿼리 파라미터에 작성한 key=value에서의 key와 일치해야 한다.

④ DELETE로 설정한 뒤 요청을 보낼 URL인 localhost:8080/api/test/delete-method/5?userName=bkjo를 셋팅한다.

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

⑥ 정상적으로 delete가 됐기 때문에 Body 부분에 아무것도 담기지 않은 것이다.

⑦ 인텔리제이(Intellij)의 console창을 보면 정상적으로 userId, userName 값이 출력 된 것을 확인할 수 있다.

 

 

 

<잘못된 예시>

 @DeleteMapping에 path 속성은 생략하고 세부 URL에 대한 path를 지정해준다.

    이 때 요청을 보내는쪽에서 /path-variable 뒤에 보낸 데이터를 대해 받기 위해서는 {}안에 변수명을 지정해주고

    이 변수명은 ②의 @PathVariable의 userId 속성에 값과 일치해야 한다.

② {}안에 변수명에 대해 @PathVariable의 userId 속성에 값과 일치해야 하며 변수명으로 들어온 값은

    long userId에 담기게 된다.

 요청을 보내는쪽에서 ? 뒤의 쿼리 파라미터에 대한 데이터를 대해 받기 위해서 @RequestParam를 넣고 타입 뒤에 있는 변수명에는 API 요청 시 쿼리 파라미터에 작성한 key=value에서의 key와 일치해야 한다.

④ DELETE로 설정한 뒤 요청을 보낼 URL인 localhost:8080/api/test/delete-method/5?name=bkjo를 셋팅한다.

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

API 요청 시 보내는 쿼리 파라미터를 보면 name=bkjo로 보내고 있는데 받는 쪽에서는 @RequestParam String     

    userName으로 받고 있기 때문에 Bad Request에 해당하는 400code 에러가 발생했다.

    name으로 보냈으면 받는 쪽도 name으로 동일하게 매핑이 되어야 한다.

⑦ 인텔리제이(Intellij)의 console창을 보면 다음과 같이 key가 userName인 parameter가 들어와야되는데 찾을 수 없다는

    에러가 출력 된 것을 확인할 수 있다.

Comments