POST API 만들기

코딩하는 하늘토끼·2023년 6월 20일

스프링부트 공부

목록 보기
5/15

프로젝트 환경

종류환경
IDEIntellij IDEA 2023.1.2 (Ultimate Edition)
언어SpringBoot 3.1.0
타입Gradle - Groovy
JDKcorretto-17
패키지 생성Jar
버전관리Github

의존성

종류이름
WebSpring web
Developer ToolsSpring Processor / Lombok

1.@RequestMapping으로 구현하기

@RequestMapping은 스프링 4.3버전 이후 잘 사용되지 않음

코드

controller/PostController.java

package com.springboot.hello.controller;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/api/v1/post-api")
public class PostController {

    //@RequestMapping으로 구현하기
    @RequestMapping(value = "/domain", method = RequestMethod.POST)
    public String postExample() {
        return "Hello Post API";
    }

}

결과


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

코드

controller/PostController.java

package com.springboot.hello.controller;

import org.springframework.web.bind.annotation.*;

import java.util.Map;

@RestController
@RequestMapping("/api/v1/post-api")
public class PostController {

    //@RequestBody를 활용한 Post 메서드 구현
    @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");
        });

        //postData.forEach((key, value) -> sb.append(key).append(":").append(value).append("\n"));

        return sb.toString();

    }

}

결과


3.DTO 객체를 활용한 POST 메서드 구현

코드

dto/MemberDto.java

package com.springboot.hello.dto;

public class MemberDto {

    private String name;
    private String email;
    private String organization;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getOrganization() {
        return organization;
    }

    public void setOrganization(String organization) {
        this.organization = organization;
    }

    @Override
    public String toString() {
        return "MemberDto{" +
                "name='" + name + '\'' +
                ", email='" + email + '\'' +
                ", organization='" + organization + '\'' +
                '}';
    }

}

controller/PostController.java

package com.springboot.hello.controller;

import com.springboot.hello.dto.MemberDto;
import org.springframework.web.bind.annotation.*;

import java.util.Map;

@RestController
@RequestMapping("/api/v1/post-api")
public class PostController {

    //DTO 객체를 활용한 POST 메서드 구현
    @PostMapping(value = "/member2")
    public String postMemberDto(@RequestBody MemberDto memberDto) {

        return memberDto.toString();

    }

}

결과

0개의 댓글