반응형
리소스 생성, 추가, 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 |