[๋ฐ๋ธŒ์ฝ”์Šค] Postman์œผ๋กœ API ํ…Œ์ŠคํŠธํ•˜๊ธฐ(GET, POST)

2025. 4. 12. 21:24ยท๐Ÿ•Š๏ธํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ๋ฐ๋ธŒ์ฝ”์Šค/TIL

์˜ค๋Š˜์€ 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 ํ…Œ์ŠคํŠธ

get ํ…Œ์ŠคํŠธ

POST ํ…Œ์ŠคํŠธ

app.post("/test", function (req, res) {
  res.send({ message: "Hello World" });
});

์›๋ž˜๋Š” body์— ์‹ค์–ด ๋ณด๋‚ด์•ผ ํ•˜์ง€๋งŒ, ์šฐ์„  Postman ์—์„œ์˜ ๋™์ž‘ ํ™•์ธ์„ ์œ„ํ•ด ์œ„ ํ˜•์‹์œผ๋กœ ์š”์ฒญ์„ ๋ณด๋ƒˆ๋‹ค. send๋ฅผ ๋ˆŒ๋Ÿฌ๋ณด๋‹ˆ, Postman์—์„œ message๊ฐ€ ์ œ๋Œ€๋กœ ์ถœ๋ ฅ๋˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

post ํ…Œ์ŠคํŠธ

๐Ÿ’ก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๊ฐ€ ํ•˜๋‚˜์”ฉ ์ฆ๊ฐ€ํ•˜๋ฉฐ ๋ฐ์ดํ„ฐ๊ฐ€ ์ €์žฅ๋œ๋‹ค.

๋“ฑ๋ก api ๊ฒฐ๊ณผ

 

์ „์ฒด ์กฐํšŒ

app.get("/youtubers", function (req, res) {
  res.send(Array.from(db.values()));
});

์ „์ฒด ์กฐํšŒ ๊ฒฐ๊ณผ


์ด์ œ๋Š” ์ฝ˜์†”๋งŒ ์ฐ๋Š” ์ˆ˜์ค€์„ ๋„˜์–ด, ์ ์  ์‹ค์ œ ์‚ฌ์šฉ์ž ์š”์ฒญ ํ๋ฆ„์„ ๋งŒ๋“ค์–ด๋‚ด๋Š” ๋А๋‚Œ์ด ๋“ ๋‹ค. ์—ฌํƒœ Thunder Client๋งŒ ์ผ์—ˆ๋Š”๋ฐ, Postman ๋””์ž์ธ์ด ์ด๋ป์„œ ๋งˆ์Œ์— ๋“ ๋‹ค.

 

'๐Ÿ•Š๏ธํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ๋ฐ๋ธŒ์ฝ”์Šค > TIL' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[๋ฐ๋ธŒ์ฝ”์Šค] Express DELETE์™€ PUT ๋ฉ”์„œ๋“œ ํ™œ์šฉ(+http ์ƒํƒœ์ฝ”๋“œ)  (0) 2025.04.15
[๋ฐ๋ธŒ์ฝ”์Šค] โญ๊ธฐ์ˆ  ๋ธ”๋กœ๊ทธ๋ฅผ ์จ์•ผ ํ•˜๋Š” ์ด์œ ์™€ DB ๋ฉด์ ‘ ๊ฟ€ํŒ  (0) 2025.04.14
[๋ฐ๋ธŒ์ฝ”์Šค] Express Generator ๊ตฌ์กฐ์™€ ํ•ต์‹ฌ ํŒŒ์ผ ๋œฏ์–ด๋ณด๊ธฐ(www, app.js)  (2) 2025.04.11
[๋ฐ๋ธŒ์ฝ”์Šค] Express URL ํ•ธ๋“ค๋ง (req.query(), ๋น„๊ตฌ์กฐํ™”, Map)  (1) 2025.04.10
[๋ฐ๋ธŒ์ฝ”์Šค] Express REST API ๊ธฐ์ดˆ(get(), res.send(), res.json(), res.params())  (1) 2025.04.08
'๐Ÿ•Š๏ธํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ๋ฐ๋ธŒ์ฝ”์Šค/TIL' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [๋ฐ๋ธŒ์ฝ”์Šค] Express DELETE์™€ PUT ๋ฉ”์„œ๋“œ ํ™œ์šฉ(+http ์ƒํƒœ์ฝ”๋“œ)
  • [๋ฐ๋ธŒ์ฝ”์Šค] โญ๊ธฐ์ˆ  ๋ธ”๋กœ๊ทธ๋ฅผ ์จ์•ผ ํ•˜๋Š” ์ด์œ ์™€ DB ๋ฉด์ ‘ ๊ฟ€ํŒ
  • [๋ฐ๋ธŒ์ฝ”์Šค] Express Generator ๊ตฌ์กฐ์™€ ํ•ต์‹ฌ ํŒŒ์ผ ๋œฏ์–ด๋ณด๊ธฐ(www, app.js)
  • [๋ฐ๋ธŒ์ฝ”์Šค] Express URL ํ•ธ๋“ค๋ง (req.query(), ๋น„๊ตฌ์กฐํ™”, Map)
ํ‚ํ‚์ž‰
ํ‚ํ‚์ž‰
๋ฟŒ๋ก ํŠธ ๊ฐœ๋ฐœ์ž(์ง€๋ง์ƒ)์˜ ํ’€์Šคํƒ ๊ฐœ๋ฐœ์ž ๋„์ „๊ธฐ
  • ํ‚ํ‚์ž‰
    monicx.dev
    ํ‚ํ‚์ž‰
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (90) N
      • ๐Ÿ–ฅ๏ธdevelop (11)
        • Github (2)
        • Frontend (4)
        • Backend (5)
        • Mobile (0)
        • CS (0)
        • Three.js (0)
        • Docker (0)
      • ๐Ÿ“•review (4) N
        • ์ฑ… (10)
        • ํ–‰์‚ฌ (0)
        • ํšŒ๊ณ  (2)
      • โญproject (5)
        • petiary (2)
        • ๆšŽ่ฉ  (0)
        • ์ธํ„ด (2)
      • ๐Ÿ˜ถ‍๐ŸŒซ๏ธalgorithm (0)
      • ๐Ÿ’กtips (1)
      • ๐Ÿ˜Ždaily (10)
      • ๐Ÿ•น๏ธgame (0)
      • ๐Ÿ•Š๏ธํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ๋ฐ๋ธŒ์ฝ”์Šค (46) N
        • TIL (26)
        • ํ”„๋กœ์ ํŠธ (15) N
        • ํšŒ๊ณ  (5)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ํ™ˆ
    • ํƒœ๊ทธ
  • ๋งํฌ

    • ๋ฒจ๋กœ๊ทธ
  • ์ธ๊ธฐ ๊ธ€

  • ์ตœ๊ทผ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.3
ํ‚ํ‚์ž‰
[๋ฐ๋ธŒ์ฝ”์Šค] Postman์œผ๋กœ API ํ…Œ์ŠคํŠธํ•˜๊ธฐ(GET, POST)
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”