[Spring Boot] 스프링 부트 Post 메소드 작성 -4 (@RequestBody, DTO)

권경환·2023년 12월 31일

JAVA

목록 보기
4/13
post-thumbnail

POST 메소드 작성

POST API는 데이터베이스의 저장소에 데이터를 저장할때 사용되는 API입니다.
저장할 데이터 값을 HTTP Body에 담아 서버에 전달합니다.
서버에 전달할때 대중적으로 사용되는 JSON 형식으로 값을 주고 받습니다.

JSON이란?
JavaScript Object Notation의 약자로 데이터를 저장하거나 전송할때 많이 사용되는 데이터 교환 형식입니다.
자바스크립트 객체 표기법을 따르기 때문에 사람이 읽기 편하도록 고안되었습니다.

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

  • @RequestBody 어노테이션을 사용하여 HTTP의 Body를 해당 어노테이션이 지정된 객체에 매핑하는 역할을 합니다.
  • Map 객체는 어떤 값이 들어오게 될지 특정하기 어려울때 사용됌.

- @RequestBody 구성 코드

@RestController
@RequestMapping("/api/post")
//http:localhost:8080/api/post/
public class PostController {
//http:localhost:8080/api/post/test
    @PostMapping(value = "/test")

    public String test(@RequestBody Map<String, Object> postData) {
        StringBuilder sb = new StringBuilder();

        postData.entrySet().forEach(e -> {
            sb.append(e.getKey() + " : " + e.getValue() + "\n");
        });

        return sb.toString();
    }
}

- 응답값

DTO 객체를 활용한 POST 메소드 구현

  • DTO 객체를 매개변수로 삼아 작성할 수 있습니다.(Get 메소드때 사용했던 것을 그대로 사용)
  1. dto 패키지를 생성한 후 dto 클래스를 생성합니다.
  2. 전달하고자 하는 필드 객체를 선언 후 getter, setter 메소드를 구현합니다.
  3. 컨트롤러를 작성하여 MemberDTO toString() 메소드를 호출합니다.

- DTO 구성 코드(Lombok 사용)

//	dto/MemberDto.java
@Getter
@Setter
@ToString
public class MemberDto {
    private String name;
    private int age;
    private String birth;
}

- Controller 코드

//	controller/PostController.java
@RestController
@RequestMapping("/api/post")
public class PostController {
    @PostMapping(value = "/test")

    public String test(@RequestBody MemberDto memberDto) {
        return memberDto.toString();
    }
}

- 응답값

profile
성장을 좋아하는 주니어 개발자의 블로그

0개의 댓글