์ค๋์ HTTP ๋ฉ์๋ POST๋ฅผ ํ ์คํธํ ์ ์๋ ๋๊ตฌ์ธ Postman ํ์ฉ์ ๋ฐฐ์ ๋ค.
๐ฌPOST
๋ฐ์ดํฐ๋ฅผ ์์ฑํ ๋ ์ฌ์ฉํ๋ ๋ฉ์๋
GET
์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๋ ์ฉ๋์๋ค๋ฉด, POST
๋ ๋ฐ์ดํฐ๋ฅผ ์์ฑํ ๋ ์ฌ์ฉํ๋ค. ์๋ก์ด ์ ๋ณด๋ฅผ ์๋ฒ์ ๋ฑ๋กํ๊ฑฐ๋ ์ ์ฅํ๊ณ ์ถ์ ๋ ์ฌ์ฉํ๋ค.
POST API๋ ์น ๋ธ๋ผ์ฐ์ ๋ก ํ ์คํธ๊ฐ ์๋๋ค?
post ๋ฉ์๋๋ก api๋ฅผ ๋ง๋ค๊ณ ์คํํ๋ฉด ๋ธ๋ผ์ฐ์ ์๋ ๋ค์ ํ ์คํธ๊ฐ ์ถ๋ ฅ๋๋ค.
Cannot GET /test
๋ธ๋ผ์ฐ์ ์ฃผ์์ฐฝ์ ๊ธฐ๋ณธ์ ์ผ๋ก GET
์์ฒญ๋ง ๋ณด๋ผ ์ ์๊ธฐ ๋๋ฌธ์, POST
๋ ํ
์คํธ๊ฐ ๋ถ๊ฐ๋ฅํ๋ค. POST
๋ body
์ ๋ฐ์ดํฐ๋ฅผ ๋ด์ ๋ณด๋ด๋ ๋ฐฉ์์ด๋ผ ๋จ์ URL ์
๋ ฅ์ผ๋ก๋ ์์ฒญ์ด ๋ถ๊ฐ๋ฅํ๋ค.
๐ง๐Postman
POST ์์ฒญ์ ํ ์คํธ ํ ์ ์๋ ๋๊ตฌ
POST
์์ฒญ์ ํ
์คํธํ๊ธฐ ์ํด ์ฌ์ฉํ๋๊ฒ Postman์ด๋ค. ๋ฌผ๋ก GET
, DELETE
, PATCH
๋ฑ ๋ค๋ฅธ ๋ฉ์๋๋ค๋ ํ
์คํธ ํ ์ ์๋ค.
Postman์์๋ ์์ฒญ ๋ฐฉ์์ ์์ ๋กญ๊ฒ ์ ํํ ์ ์๊ณ , body์ JSON ๋ฐ์ดํฐ๋ฅผ ๋ฃ์ด ๋ณด๋ผ ์๋ ์๋ค.
GET ํ ์คํธ
POST ํ ์คํธ
app.post("/test", function (req, res) {
res.send({ message: "Hello World" });
});
์๋๋ body์ ์ค์ด ๋ณด๋ด์ผ ํ์ง๋ง, ์ฐ์ Postman ์์์ ๋์ ํ์ธ์ ์ํด ์ ํ์์ผ๋ก ์์ฒญ์ ๋ณด๋๋ค. send๋ฅผ ๋๋ฌ๋ณด๋, Postman์์ message๊ฐ ์ ๋๋ก ์ถ๋ ฅ๋๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.
๐กPostman Tip: ์์ฃผ ์ฌ์ฉํ๋ ์์ฒญ์ ์ ์ฅํ ์ ์๋ค -> ctrl+s ๋๋ save ๋ฒํผ
๐ฎPost API ๋ง๋ค๊ธฐ
app.use(express.json); //body ํ์ฑ ๋ฏธ๋ค์จ์ด
app.post('/test', function(req, res){
console.log(req.body); //์ ์ฒด ์์ฒญ body
console.log(req.body.message); //ํน์ ํ๋ ์ ๊ทผ
res.send(req.body.message); //๋ฉ์์ง ๊ทธ๋๋ก ์๋ต
)
json
๋ฏธ๋ค์จ์ด๋ฅผ ์ฐ๋ฉดrequest
๋ก ๋ ์์ค๋ ๋ฐ๋๊ฐ์ json์ผ๋ก ์ฝ์ ์ ์๋ค.
โ ๏ธ์ฃผ์:์๋ชป๋ JSON ํ์
์ง๊ธ๊น์ง res.json์ผ๋ก ์๋ต์ ๋ณด๋ผ ๋๋ { message: "text" }
์ ๊ฐ์ ํ์์ผ๋ก ๋ฐ์ดํ๋ฅผ ์๋ตํด๋, ๋ธ๋ผ์ฐ์ ๊ฐ ์๋์ผ๋ก ๋ฌธ์์ด๋ก ์ฒ๋ฆฌํด์ ์ถ๋ ฅํด์ฃผ์๋ค.
ํ์ง๋ง Postman์ ์ฌ์ฉํ ๋๋ ๋ธ๋ผ์ฐ์ ์ฒ๋ผ ์๋์ผ๋ก ์ฒ๋ฆฌํ์ง ์๊ธฐ ๋๋ฌธ์, ์ ํํ JSON ํ์์ ์ง์ผ์ผ ํ๋ค. ์ฆ, { message: "text" }
๊ฐ ์๋๋ผ {"message":"text"}
ํ์์ผ๋ก ๋ณด๋ด์ผ ํ๋ค!
โญ ํญ์ "key":"value" ํํ๋ก ์ ๋ ฅ
์ค์ต: ์ ํ๋ฒ ๋ฑ๋ก API
API ์ค๊ณ
POST /youtuber
- req: body(channelName,sub,videoNum)- res: channelTitle ๋ ์ ํ๋ฒ ์ํ์ ์์ํฉ๋๋ค.
app.use(express.json());
app.post("/youtuber", function (req, res) {
const data = req.body;
db.set(id++, req.body);
console.log(db);
res.json({
mesage: `${db.get(id - 1).channelName}๋์ ์ ํ๋ฒ ์ํ์ ์์ํฉ๋๋ค.`,
});
});
- ์์ฒญ๋๋ง๋ค ์๋์ผ๋ก id๊ฐ ํ๋์ฉ ์ฆ๊ฐํ๋ฉฐ ๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋๋ค.
์ ์ฒด ์กฐํ
app.get("/youtubers", function (req, res) {
res.send(Array.from(db.values()));
});
์ด์ ๋ ์ฝ์๋ง ์ฐ๋ ์์ค์ ๋์ด, ์ ์ ์ค์ ์ฌ์ฉ์ ์์ฒญ ํ๋ฆ์ ๋ง๋ค์ด๋ด๋ ๋๋์ด ๋ ๋ค. ์ฌํ Thunder Client๋ง ์ผ์๋๋ฐ, Postman ๋์์ธ์ด ์ด๋ป์ ๋ง์์ ๋ ๋ค.