본문 바로가기
Spring

Post API

by step 1 2021. 6. 12.
반응형

리소스 생성, 추가, create, Path Variable, Query Parameter, DataBody

XML, JSON 형태로 데이터를 전달

 

주로 JSON으로 전달

타입

string : value

number : value

boolean : value

object : vlaue { }

array : value [ ]

 

JSON 포맷

{

   "phone_number" : "value",

   "phoneNumber" : "value",

   "string" : "010-222-3333"

   "number" : 10,

   "boolean" : false,

   "object" : {

           "address" : "aaa@naver.com",

           "password" : "aaaa"

    },

    "array" : [

       {

            "account" : "abcd",

            "password" : "1234"

       },

       {

            "account" : "aaaa",

            "password" : "1232"

       }

    ]

}

 

예제 JSON 형태

{
    "account" : "",
    "email" : "",
    "password" : "",
    "address" : ""
}

 

예제 코드

POST 방식일 경우에는 @RequestBody 어노테이션을 사용해야 한다.

Map 방식

package com.example.post.controller;

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 java.util.Map;

@RestController
@RequestMapping("/api")
public class PostApiController {

    @PostMapping("/post")
    // POST 방식일 경우에는 @RequestBody 어노테이션을 사용해야 한다.
    public void post(@RequestBody Map<String , Object> requestData){

        requestData.forEach((key, value) -> {
            System.out.println("key: " + key);
            System.out.println("value: " + value);
        });
    }
}

Json형태로 controller에 데이터 전송

받아오는 거 확인

 

DTO 방식

dto 생성

@JsonProperty 어노테이션으로 직접 Json Key와 매칭 시켜줄 수 있다.

package com.example.post.dto;

import com.fasterxml.jackson.annotation.JsonProperty;

public class PostRequestDto {

    private String account;
    private String email;
    private String address;
    private String password;

    // 받는쪽에서는 낙타체 보내는 쪽에서는 snake case 인 경우
    @JsonProperty("phone_number")
    private String phonNumber; //phone_number

    public String getAccount() {
        return account;
    }

    public void setAccount(String account) {
        this.account = account;
    }

    public String getEmail() {
        return email;
    }

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

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }


    public String getPhonNumber() {
        return phonNumber;
    }

    public void setPhonNumber(String phonNumber) {
        this.phonNumber = phonNumber;
    }

    @Override
    public String toString() {
        return "PostRequestDto{" +
                "account='" + account + '\'' +
                ", email='" + email + '\'' +
                ", address='" + address + '\'' +
                ", password='" + password + '\'' +
                ", phonNumber='" + phonNumber + '\'' +
                '}';
    }
}

controller 추가

    @PostMapping("/post2")
    // POST 방식일 경우에는 @RequestBody 어노테이션을 사용해야 한다.
    public void post2(@RequestBody PostRequestDto postRequestDto){

        System.out.println(postRequestDto.toString());

    }

콘솔 확인

 

 

반응형

'Spring' 카테고리의 다른 글

Delete API  (0) 2021.06.12
PUT API  (0) 2021.06.12
Get API  (0) 2021.06.12
Hello World API 만들기  (0) 2021.06.12
Spring Boot  (0) 2021.06.12