///////
Search
🥑

PUT, DELETE, Swagger

PUT API

웹 애플리케이션 서버를 통해 DB 등에 존재하는 리소스 값을 업데이트하는데 사용

PUT vs POST

PUT
POST
해당 리소스의 값 전체를 교체
해당 리소스의 값 일부만 교체
만약 전체가 아닌 일부만 전달할 경우, 전달한 필드외 모두 null or 초기값 처리된다
일부의 필드를 수정하는 용도로 쓰인다

PutController Class

@RestController @RequestMapping("/api/v1/put-api") public class PutController { // @RequestBody 와 Map 을 활용한 PUT 메서드 구현 @PutMapping(value = "/member") public String putMember(@RequestBody Map<String, Object> putData) { StringBuilder sb = new StringBuilder(); putData.entrySet().forEach(map -> { sb.append(map.getKey() + " : " + map.getValue() + "\n"); }); return sb.toString(); } // DTO 객체를 활용한 PUT 메서드 구현 @PutMapping(value = "/member1") public String postMemberDto1(@RequestBody MemberDto memberDto) { return memberDto.toString(); } @PutMapping(value = "/member2") public MemberDto postMemberDto2(@RequestBody MemberDto memberDto) { return memberDto; } // ResponseEntity 를 활용한 PUT 메서드 구현 @PutMapping(value = "/member3") public ResponseEntity<MemberDto> postMemberDto3(@RequestBody MemberDto memberDto) { return ResponseEntity .status(HttpStatus.ACCEPTED) .body(memberDto); } }
Java
복사

DELETE API

웹 애플리케이션 서버를 통해 DB 등에 존재하는 리소스 값을 삭제하는데 사용

DeleteController Class

@RestController @RequestMapping("/api/v1/delete-api") public class DeleteController { // @PathVariable 과 @RequestParam 을 활용한 DELETE 메서드 구현 @DeleteMapping(value = "/{variable}") public String DeleteVariable(@PathVariable String variable) { return variable; } // @RequestParam 을 활용한 DELETE 메서드 구현 @DeleteMapping(value = "/request") public String getRequestParam1(@RequestParam String email) { return "e-mail : " + email; } }
Java
복사
위 예제는 삭제 기능이 결여되어 있으며, 실제 메서드 코드는 데이터 삭제와 NULL 예외처리가 반드시 병행되어야 한다

Swagger

Swagger란?

OAS(Open Api Specification) API문서화를 쉽게 할 수 있도록 도와주며, 파라미터를 넣어서 실제로 어떤 응답이 오는지 테스트 가능

Swagger 적용

1. Pom.xml에 의존성 추가

(Windows : alt + insert / Mac: ctrl + enter → Add dependency)
springfox:springfox-boot-starter:3.0.0
springfox:springfox-swagger-ui:3.0.0
  ❗️<dependencies> …</dependencies> 사이에 있는지 꼭 확인
  에러 발생 시
1) application.properties → application.yml 이름 변경 후 아래와 같이 작성
spring: mvc: pathmatch: matching-strategy: ant_path_matcher
Java
복사
2) spring-boot-maven-plugin
Plugin 'org.springframework.boot:spring-boot-maven-plugin:' not found 에러 발생 시 아래와 같이 version 적어주기
<artifactId>spring-boot-maven-plugin</artifactId> 👉🏻 <version>2.7.5</version>
Plain Text
복사

2. configuration.SwqggerConfiguration.java 추가

HelloAppilcation보다 하위 파일에 존재해야 함

3. Swagger-ui 접속

http://localhost:8080/swagger-ui/ 로 접속되면 성공