본문 바로가기

Back-end/Springboot

[SpringBoot] POST API 만들기

POST API

웹 어플리케이션을 통해 데이터베이스 등의 저장소에 리소스를 저장할 때 사용되는 API이다. GET API에서는 URL의 경로나 파라미터에 변수를 넣어 요청을 보냈지만 POST API에서는 저장하고 하는 리소스나 값을 HTTP 바디에 담아 서버에 전달한다.

 

1. @RequestMapping으로 구현하기

GET API와 똑같은 방식으로 사용하되 RequestMethod를 POST로 설정한다.

@RestController
@RequestMapping("/api/v1/post-api")
public class PostController {
    // http://localhost/api/v1/post-api/domain
    @RequestMapping(value = "/domain", method = RequestMethod.POST)
    public String postExample() {
        return "Hello Post API";
    }
}

@RequestMapping 사용 예

 

2. @RequestBody를 활용한 POST 메서드 구현

일반적으로 POST 형식의 요청은 클라이언트가 서버에 리소스를 저장하는 데 사용한다. POST 요청에서는 리소스를 담기 위해 HTTP Body에 값을 넣어 전송한다.

public class PostController {
    // 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();
    }
   }

@RequestBody를 활용한 POST 메서드 구현

 

3. DTO 객체를 활용한 POST API 구현

요청 메시지에 들어갈 값이 정해져 있다면 DTO 객체를 매개변수로 삼아 작성할 수 있다.

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

DTO 객체를 활용한 POST API 구현

 

 

 

 

참고 문헌: 스프링 부트 핵심 가이드(스프링 부트를 활용한 애플리케이션 개발 실무)

http://www.yes24.com/Product/Goods/110142898

 

스프링 부트 핵심 가이드 - YES24

입문자의 눈높이에 맞춰 차근차근 따라 하면서 배우는 스프링 부트 입문서!《스프링 부트 핵심 가이드》는 스프링 부트 기반의 애플리케이션을 개발할 때 필요한 기초적인 내용들을 소개하고,

www.yes24.com