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> 사이에 있는지 꼭 확인
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/ 로 접속되면 성공