JeongJin's Blog

05. API를 작성하는 다양한 방법 (2) 본문

Book Study/스프링 부트 핵심 가이드

05. API를 작성하는 다양한 방법 (2)

정진킴 2023. 10. 23. 09:00

5.3 POST API 만들기

  • 데이터 베이스 등의 저장소에 리소스를 저장할 때 사용하는 API
  • 소스
    • Map을 사용하는 이유는 어떤 데이터가 요청될지 모르기 때문에 사용
import java.util.Map;

import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/api/v1/post-api")
public class PostController {
	@PostMapping("/member")
	public String postMember(
		@RequestBody Map<String, String> postData
	) {
		StringBuilder sb = new StringBuilder();
		
		postData.entrySet().forEach(map -> {
			sb.append(map.getKey() + ":" + map.getValue());
		});
		
		return sb.toString();
	}
}
  • 결과

  • 요청데이터가 Dto 인 경우
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import com.zerobase.account.dto.MemberDto;

@RestController
@RequestMapping("/api/v1/post-api")
public class PostController {
	@PostMapping("/member2")
	public String postMember2(
		@RequestBody MemberDto memberDto
	) {
		return memberDto.toString();
	}
}
  • 결과

  • DTO 객체를 반환하는 요청
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import com.zerobase.account.dto.MemberDto;

@RestController
@RequestMapping("/api/v1/post-api")
public class PostController {
	@PostMapping("/member3")
	public MemberDto postMember3(
		@RequestBody MemberDto memberDto
	) {
		return memberDto;
	}
}
  • 결과
    • Json 형태로 응답을 준다.