본문 바로가기
Spring Framework

Controller / Put API, Delete API - @putMapping @deleteMapping

by 진청우 2023. 1. 18.

GetController, PostController와 이용 방법이 겹친다

Put API

//http://localhost:8080/api/v1/put-api/default
    @PutMapping(value = "/default")
    public String putMethod() {
        return "Hello putMethod!";
    }

    //http://localhost:8080/api/v1/put-api/member
    @PutMapping(value = "/member")
    public String postMember(@RequestBody Map<String, Object> putData) {
        StringBuilder sb = new StringBuilder();

        putData.entrySet().forEach(map -> {
            sb.append(map.getKey() + " : " + map.getValue() + "\n");
        });
        return sb.toString();
    }

DTO 사용 시

//http://localhost:8080/api/v1/put-api/member1
    @PutMapping(value = "/member1")
    public String postMemberDto1(@RequestBody MemberDTO memberDTO) {
        return memberDTO.toString();
    }

    //http://localhost:8080/api/v1/put-api/member2
    @PutMapping(value = "/member2")
    public MemberDTO postMemberDto2(@RequestBody MemberDTO memberDTO) {
        return memberDTO;
    }

    //http://localhost:8080/api/v1/put-api/member3
    @PutMapping(value = "/member3")
    public ResponseEntity<MemberDTO> postMemberDto3(@RequestBody MemberDTO memberDTO) {
        return ResponseEntity.status(HttpStatus.ACCEPTED).body(memberDTO);
    }

3번째 방법은 ResponseEntitiy를 사용함. 리턴 값은 1은 string 형태지만 2와3은 JSON 형태이다.

ResponseEntity

Spring Framework에서 제공하는 클래스 중 HttpRequest라는 클래스를 상속받아 사용하는 클래스.

사용자의 HttpRequest에 대한 응답 데이터를 포함.

 

포함하는 클래스

- HttpStatus

- HttpHeaders

- HttpBody

 

 

Delete API

//http://localhost:8080/api/v1/get-api/variable1/{string 값}
    @DeleteMapping(value = "/delete/{variable}")
    public String deleteVariable(@PathVariable String variable) {
        return variable;
    }

variable을 동일하게 써주어야 한다는 점을 놓치지 말자.

지금으로서는 DB 연동이 안되어서 잘 작동하는지 모름.

DB연동 후 추가 작업이 필요하다.