๋ฐ๋ก ์ ํฌ์คํธ์์ ์ฐ๋ฆฌ๋ HTTP Method-GET์ ๋ํด์ ์์๋ณด์๋๋ฐ, Get ๋ฉ์๋์ ๋ํด์ ๋ชจ๋ฅด๋ ๋ ์๋ผ๋ฉด ํ ๋ฒ ๊ฐ๋ณ๊ฒ ์ฝ๊ณ ์ค๋ ๊ฒ์ ์ถ์ฒํ๋ค.
HTTP - POST
Post ๋ฉ์๋๋ Form์ ์ด์ฉํ์ฌ ์ ๋ณด๋ฅผ ๋ฐ์ ๋๋ ํน์ ajax์ ๋น๋๊ธฐํ๋ฅผ ํ ๋, ์๋ฒ์ ๋ฐ์ดํฐ๋ฅผ ์กฐ์ํ๊ฑฐ๋ ๊ฒ์์ ์ฌ์ฉ๋๋ค. ์ฌ์ค Post๋ก ๋ฐ๋ Get์ผ๋ก ๋ฐ๋ ๋์ผํ ์ญํ ์ ์ํํ ์ ์์ง๋ง Get๋ง ์ํํ ์ ์๋ ๋ถ๋ถ์ด ์กด์ฌํ๊ณ ๋ Post๋ง ์ํํ ์ ์๋ ๋ถ๋ถ์ด ์กด์ฌํ๋๋ฐ, ํฐ ํน์ง์ด๋ผ๊ณ ํจ์ Post๋ฐฉ์์ URL์ ํ๋ผ๋ฏธํฐ๊ฐ ๋ ธ์ถ๋์ง ์๊ณ RequestBody์ ๊ฐ์ธ์ ธ์ ๋ฐ์ดํฐ๊ฐ ์ ์ก๋๋ค.
Post Method๊ฐ ์ฃผ๋ก ํ๋ ์ผ์?
Post๋ Get์ด๋ ํ๋ผ๋ฏธํฐ๋ฅผ ๋๊ธฐ๋ ๊ฒ์ ๋๊ฐ์๋ฐ ์ด๋ป๊ฒ ๋ค๋ฅผ๊น
์ด ๊ฒ์ ์๊ธฐ ์ํด์ Get์ ํน์ง์ค URL์ ํ๋ผ๋ฏธํฐ๋ฅผ ํฌํจ์ํค๋ ํน์ฑ์ ์๊ณ ์์ด์ผ ํ๋ค.
Post๋ RequestBody์ ๋ด์ฉ๋ฌผ์ ์ค์ด์ ๋ณด๋ธ๋ค๊ณ ํ๋๋ฐ, ์ด๋ Get๊ณผ ์ ํ ๋ค๋ฅธ ๋ฐฉ์์ด๋ค. URL์ ๋ฐ์ดํฐ๊ฐ ํ์๋์ง ์์์ ๋ค๋ฅธ ์ฌ๋์๊ฒ ๋๊ฐ์ URL์ ์ฃผ๋๋ผ๋ ๋ค๋ฅธ ์ ๋ณด๋ฅผ ํ์ํด ์ค ์ ์๊ฒ ๋๋ ๊ฒ์ด๋ค.
URL์ ๊ธธ์ด๋ ๊ณ ์ ์ ์ด์ด์, ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ผ ์ ์๋ ๊ธธ์ด๊ฐ ์ ํ์ ์ธ ๋ฐ๋ฉด Post์ RequestBody์ ๊ธธ์ด๋ ๊ธธ๋ ์งง๋ ์ ์ฝ์ด ์กด์ฌํ์ง ์๋๋ค.
๊ทธ๋์ ํฐ ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ผ ์ ์๊ฒ๋๋ฉฐ, ์ด๋ฌํ ํน์ฑ ๋๋ฌธ์ ์๋ฒ์ ์ํ๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋๋ฐ ์ฃผ๋ก ์ฌ์ฉ๋๋ค.
Post Method๋ฅผ ์ง์ ์ฌ์ฉํด๋ณด์.
์ง๋ Get๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก controller ํด๋์ค๋ฅผ ๋ง๋ค์ด ์ฃผ์.
@RestController
@RequestMapping("/api")
public class TestPostController {
@PostMapping("/intro")
public String postMethod(@RequestBody String id){
return id + "๋ ํ์ํฉ๋๋ค!";
}
}
์ฌ๊ธฐ์ ์ค์ํ ์ ์ด ํ๋ ์๋ค.
Get ์์ ์๊ฐ์ ํด๋ณด์. ์ฐ๋ฆฌ๊ฐ ํ๋ผ๋ฏธํฐ๋ฅผ ๋๊ฒจ์ค ๋ ์ด๋ป๊ฒ ํ๋๊ฐ?
๊ทธ๋ ๋ค URL์ ํฌํจ์์ผ์ ๋ฃ์์ง๋ง Post๋ URL์ ์ ๋ณด๋ฅผ ํํํ์ง ๋ชปํ๋ค. ๊ทธ๋ผ ์ด๋ป๊ฒ ํด์ผํ ๊น? RequestBody๋ฅผ ๋ง๋ค์ด์ RequestBody์ ํฌํจ์์ผ์ผํ๋๋ฐ ๊ทธ ๊ณผ์ ์ด ๋ฐ๋ก 5๋ฒ์งธ ์ค์ @RequestBody String id
์ด๋ค.
๊ทธ๋ผ ํ ์คํธ๋ ์ด๋ป๊ฒ?
์ฐ๋ฆฌ๊ฐ ํ ์คํธ๋ฅผ ํ ๋ URL์ ์ ๋ณด๋ฅผ ๋๊ฒจ์ค ์ ์์ผ๋ฏ๋ก ๊ฐ๋ฐ์ ๋๊ตฌ์ธ API Tester๋ฅผ ์ฌ์ฉํ๋ค
.
API-Tester์์ ํํ์ด์ง์ ๋ค์ด๊ฐ์ ์ฌ์ฉํ๋ฉด ๋๋ค.
์ฌ๊ธฐ์
์ ๊ฒฝ๋ก๋ก ๋ฆฌํ์คํธ๋ฅผ ๋ ๋ ค๋ณด์.
๋ฆฌํ์คํธ๋ฅผ ๋ณด๋ผ ๋๋ ๊ธฐ๋ณธ ํํ์ธ JSON ํ์
์ผ๋ก ๋ณด๋ด์ผ ํ๋๋ฐ, ํค-๊ฐ
์์ผ๋ก ์ฐ๊ฒฐ์ ์์ผ์
์์ ๊ฐ์ด ๋ณด๋ด๋ฉด
๊ณผ ๊ฐ์ด 200 OK๊ฐ ๋์ฌ ๊ฒ์ด๋ค.
๊ฐ์ฑ ํ์ ์ผ๋ก ๋ณด๋ด๋ณด์!
์๊น Get์์๋ ์ฐ๋ฆฌ๋ ๊ฐ์ฒดํ์์ผ๋ก ๋ณด๋๋๋ฐ ๊ทธ ์์ค์ฝ๋๋ฅผ ์ ์ ์ฐธ๊ณ ํ์๋ฉด
@GetMapping("/getMethod")
public TestUser getRequest(TestUser testUser){
return testUser;
}
์ผ๋ก @RequestParam
์ ์๋ตํ๊ณ ๋ ๊ฐ์ฒด๋ฅผ ๋ณด๋๋๋ฐ, Post๋ ์กฐ๊ธ ๋ค๋ฅด๋ค. ๊ฐ์ฒด๋ฅผ ์ฌ์ฉํ๋๋ผ๋ RequestBody์ ๊ฐ์ธ์ ๋ณด๋ด์ผ ํ๊ธฐ ๋๋ฌธ์ @RequestBody
์ด๋
ธํ
์ด์
์ ๋ถํ์ค๋ค.
@PostMapping("/info")
public UserInfo findInfo(@RequestBody UserInfo userInfo){
return userInfo;
}
๊ทธ๋ฆฌ๊ณ API-Tester์ ์ฌ์ฉํด์ ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ด๋ณด๋ฉด
๊ณผ ๊ฐ์ด 200 OK๊ฐ ๋ํ๋ ๊ฒ์ด๋ค.
๋๊ธ