POST API
body๋ ๋ณดํต JSON ํ์
์ผ๋ก ์ฃผ๊ณ ๋ฐ๋๋ค. (XML๋ ์๊ธดํ๋ค.)
๊ณตํต URL ์์ฑํ๊ธฐ
package com.springboot.api.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/api/v1/post-api")
public class PostController {
}
@RequestBody๋ฅผ ํ์ฉํ POST ๋ฉ์๋ ๊ตฌํ
2๊ฐ์ง ๋ฐฉ์์ผ๋ก ๊ตฌํํ๋ค.
- ์ด๋ค ํํ๋ก ๊ฐ์ด ๋ค์ด์ค๊ฒ ๋ ์ง
ํน์ ํ๊ธฐ ์ด๋ ค์ธ ๋
โ Map ํด๋์ค๋ฅผ ์ด์ฉํ์ฌ ๋งคํํ๋ค.
@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"); }); return sb.toString(); }
๋ค์ URI์ BODY๋ฅผ POST ๋ฐฉ์์ผ๋ก ์ ๋ฌํ ๊ฒฐ๊ณผ์ด๋ค.
{ "name":"Hong", "age":2400, "email":"test@test.com" }
- ์ด๋ค ํํ๋ก ๊ฐ์ด ๋ค์ด์ค๊ฒ ๋ ์ง
ํน์ ํ ์ ์์ ๋
โ DTO ๊ฐ์ฒด๋ฅผ ์ด์ฉํ์ฌ ๋งคํํ๋ค.
@PostMapping(value="/member2") public String postMember2(@RequestBody MemberDTO memberDTO){ return memberDTO.toString(); }
๋ค์ URI์ BODY๋ฅผ POST ๋ฐฉ์์ผ๋ก ์ ๋ฌํ ๊ฒฐ๊ณผ์ด๋ค.
{ "name":"Hong", "organization":"test", "email":"test@test.com" }
Q1. DTO ๋ฐฉ์์์ ์๋ ์์ฑ์์ ์ง์ด๋ฃ์ผ๋ฉด ์ด๋ป๊ฒ ๋๋๊ฐ?
๋ค์ URI์ BODY๋ฅผ POST ๋ฐฉ์์ผ๋ก ์ ๋ฌํ ๊ฒฐ๊ณผ์ด๋ค.
{
"name":"Hong",
"organization":"test",
"email":"test@test.com",
"age":123123
}
๋ค์๊ณผ ๊ฐ์ด ์๋ ๋ด์ฉ์ ์ถ๊ฐ๋์ง ์๋๋ค.
Q2. DTO ๋ฐฉ์์์ ์์ฑ์ ๋ถ์กฑํ๊ฒ ์ง์ด๋ฃ์ผ๋ฉด ์ด๋ป๊ฒ ๋๋๊ฐ?
๋ค์ URI์ BODY๋ฅผ POST ๋ฐฉ์์ผ๋ก ์ ๋ฌํ ๊ฒฐ๊ณผ์ด๋ค.
{
"name":"Hong",
"organization":"test"
}
๋ค์๊ณผ ๊ฐ์ด ์๋ ๋ด์ฉ์ null ๊ฐ์ ๊ฐ์ง๋ค.
๊ฐ์ด ๋ค์ด์ค๋ ํํ๊ฐ ๊ฒฐ์ ๋๋ฉด DTO ๋ฐฉ์์ผ๋ก ๊ฐ๊ฒฐํ ์ฝ๋๊ฐ ์์ฑ๋จ์ ์ ์ ์๋ค.
Uploaded by N2T
'Programming > [Spring Boot]' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Swagger๋ฅผ ํ์ฉํ REST API ๋ช ์ธ ๋ฌธ์ํ (0) | 2023.01.25 |
---|---|
PUT/DELETE API ๋ง๋ค๊ธฐ (1) | 2023.01.21 |
GET API ๋ง๋ค๊ธฐ (0) | 2023.01.19 |
ํ๋ก์ ํธ ์์ฑํ๊ธฐ (0) | 2023.01.19 |
Talend API Tester๋ฅผ ํตํด ๋์ ํ ์คํธ๋ฅผ ํด๋ณด์ (0) | 2023.01.19 |