Spring Framework

Controller / Post API - @postMapping

진청우 2023. 1. 18. 13:12

Post  API

리소스를 추가하기 위해 사용되는 API.

@PostMapping : POST API를 제작하기 위해 사용되는 어노테이션 (@RequestMapping + Post method의 조합)

 

아래는 파라미터 없이 보내는 방식.

@RestController
@RequestMapping("/api/v1/post-api")
public class PostController {
    @PostMapping(value = "/default")
    public String postMethod() {
        return "Hello World";
    }

 

일반적으로 추가하고자 하는 Resource를 http body에 추가하여 서버에 요청.

그렇기 때문에 @RequestBody를 사용하여 body에 담겨 있는 값을 받아야 함.

//http://localhost:8080/api/v1/post-api/member
    @PostMapping(value = "/member")
    public String postMember(@RequestBody Map<String, Object> postData) {
        StringBuilder sb = new StringBuilder();
        postData.entrySet().forEach(map -> {
            sb.append(map.getKey() + " : " + map.getValue() + "\n");
        });
        return sb.toString();
    }

 

DTO 사용

key와 value가 정해져 있지만 받아야 할 파라미터가 많을 경우 DTO 객체를 사용한 방식.

//http://localhost:8080/api/v1/post-api/member2
    @PostMapping(value = "/member2")
    public String postMemberDto(@RequestBody MemberDTO memberDTO) {
        return memberDTO.toString();
    }