[๐Ÿ’ป ์ฝ”๋“œ์Šคํ…Œ์ด์ธ  FE 44๊ธฐ] Postman, Message State, ์ข…ํ•ฉํ€ด์ฆˆ

JiEunยท2023๋…„ 3์›” 30์ผ
0
post-thumbnail

โœ”๏ธ ์‹œ์ž‘

Postman์„ ์ด์šฉํ•ด API๋ฅผ ํ…Œ์ŠคํŠธ ํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.
์ด๋ฒˆ ์ข…ํ•ฉํ€ด์ฆˆ ๋ช‡๋ช‡ ๋ฌธ์ œ๊ฐ€ ์ดํ•ด๊ฐ€ ๋˜์ง€ ์•Š์•„์„œ ๊ฐ™์ด ๋ธ”๋กœ๊น…ํ•˜๋ ค๊ณ  ํ•œ๋‹ค.


๐Ÿ“๋ฐฐ์šด ๊ฒƒ

โœ”๏ธ HTTP API ํ…Œ์ŠคํŠธ ๋„๊ตฌ

CLI

  • curl (๋Œ€๋ถ€๋ถ„์˜ ๋ฆฌ๋ˆ…์Šค ํ™˜๊ฒฝ์— ๋‚ด์žฅ๋˜์–ด ์žˆ๋‹ค.)
  • wuzz

GUI

  • Postman
  • Insomnia

์‚ฌ์šฉํ•˜๊ธฐ ์‰ฌ์šด Postman์œผ๋กœ API ํ…Œ์ŠคํŠธ๋ฅผ ํ–ˆ๋‹ค.
[postman ๋ฐ”๋กœ๊ฐ€๊ธฐ]

๋ฌด๋ฃŒ ๋‚ ์”จ API (openweathermap)

  • [openweathermap ๋ฐ”๋กœ๊ฐ€๊ธฐ]
  • ๋กœ๊ทธ์ธ ๋˜๋Š” ํšŒ์›๊ฐ€์ž… ํ›„ (๋ฉ”์ผ ์ธ์ฆ ์ง„ํ–‰ํ•ด์•ผํ•จ)
  • API Key๋ฅผ ๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค.
  • Current Weather Data [API doc]์—์„œ ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์œผ๋กœ ๋‚ ์”จ ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋‹ค.
  • ์ด๋•Œ API Key ์ •๋ณด๊ฐ€ ์žˆ์–ด์•ผ ๋‚ ์”จ๋ฅผ ๋ถˆ๋Ÿฌ์˜ฌ ์ˆ˜ ์žˆ๋‹ค.

โœ”๏ธ Message State

endpoint

  • ๊ฐ™์€ ์—ฌ๋Ÿฌ URL์— ๋Œ€ํ•ด ๋‹ค๋ฅธ ์š”์ฒญ์„ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๊ตฌ๋ณ„ํ•ด ์ฃผ๋Š” ํ•ญ๋ชฉ
  • API๊ฐ€ ์„œ๋ฒ„์—์„œ ์ž์›(Resource)์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋„๋กํ•˜๋Š” URL

root-endpoint(๋˜๋Š” root-URL)

  • API๋กœ ์š”์ฒญ์„ ์„œ๋ฒ„์™€ ํ†ต์‹ ํ•  ๋•Œ, ์„œ๋ฒ„๊ฐ€ ์š”์ฒญ์„ ์ˆ˜๋ž‘ํ•˜๋Š” ์‹œ์ž‘์ 
  • ์ผ๋ฐ˜์ ์œผ๋กœ root-endpoint๋Š” ๋„๋ฉ”์ธ ์ฃผ์†Œ์˜ ๋ฃจํŠธ(/)๋ฅผ ๊ฐ€๋ฆฌํ‚จ๋‹ค.
  • Message State Server์˜ URL์„ ๊ธฐ์ค€์œผ๋กœ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ๋Š” root-endpoint :
    Message State Server์˜ ๊ฐ€์žฅ ๋งˆ์ง€๋ง‰ Location์ธ ํ˜ธ์ŠคํŠธ์˜ ๋ฃจํŠธ(/)์ด๋‹ค.

Github API์˜ root-endpoint : https://api.github.com
ํŠธ์œ„ํ„ฐ API์˜ root-endpoint : https://api.twitter.com

path(๋˜๋Š” url-path)

  • API๋ฅผ ํ†ตํ•ด ์„œ๋ฒ„์™€ ํ†ต์‹ ํ•  ๋•Œ, ์„œ๋ฒ„์™€ ํ†ต์‹ ํ•  ์ˆ˜ ์žˆ๋Š” key์—ญํ• 
  • ์„œ๋ฒ„์— ์ •์˜๋œ ๋ฌธ์ž์—ด์— ๋”ฐ๋ผ path๊ฐ€ ๋‹ฌ๋ผ์ง„๋‹ค.

https://api.github.com/user ์—์„œ 'user'๊ฐ€ path์ด๋‹ค.

โœ”๏ธ ์ข…ํ•ฉํ€ด์ฆˆ

  • ๋ฌธ์ œ ํ’€๋ฉด์„œ ๋‹ตํ•˜๊ณ  ๋งค์น˜๊ฐ€ ์ž˜ ์•ˆ๋˜๊ณ  ์ดํ•ดํ•˜๊ธฐ ์–ด๋ ค์šด ๋ถ€๋ถ„์ด ์žˆ์—ˆ๋‹ค.

endpoint

  • endpoint๋ฅผ ์ž‘์„ฑํ•  ๋•Œ ๋™์‚ฌ(= ๋™์ž‘์„ ๋ฌ˜์‚ฌ)๋ง๊ณ  ๋ช…์‚ฌ(= ์ด๋ฆ„ํ’ˆ์‚ฌ)๋กœ ์ž‘์„ฑํ•ด ์ค˜์•ผํ•œ๋‹ค.
  • endpoint๋ฅผ ์ž‘์„ฑํ•  ๋•Œ ๋ณต์ˆ˜ ํ˜•ํƒœ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ฑฐ ๊ฐ™๋‹ค. (resturants, seats ๋“ฑ)
  • ์•ž์— ๋ฉ”์„œ๋“œ(POST, DELETE ๋“ฑ)์„ ์‚ฌ์šฉํ–ˆ์„ ๋•Œ endpoint์— ํ•œ ๋ฒˆ ๋” (post, delete ๋“ฑ) ์ž‘์„ฑํ•  ํ•„์š”๊ฐ€ ์—†๋‹ค. (ex - DELETE/delete)

Path Parameter

  • ์ „์ฒด ๋ฐ์ดํ„ฐ ๋˜๋Š” ํŠน์ • ํ•˜๋‚˜์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃฐ ๋•Œ ์‚ฌ์šฉ

Query Parameter

  • filtering, ordering, searching์— ๋งŽ์ด ์‚ฌ์šฉํ•œ๋‹ค.
  • offset: ๋ฆฌ์†Œ์Šค ์ปฌ๋ž™์…˜์˜ ์ฒจ์Œ N๊ฐœ ํ•ญ๋ชฉ์„ ์‘๋‹ต์—์„œ ์ œ์™ธํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ
  • limit: ๋‹จ์ผ ์‘๋‹ต ํŽ˜์ด์ง€์— ํฌํ•จ๋œ ๋ฆฌ์†Œ์Šค ์ˆ˜๋ฅผ ์ง€์ •

๊ธฐํƒ€

  • POST ์š”์ฒญ์— ์˜ํ•ด ์ •๋ณด๊ฐ€ ์ƒ์„ฑ ๋˜๋Š” ๊ฒƒ์€ HTTP ์‘๋‹ต์ฝ”๋“œ 201 Created๊ฐ€ ์ ํ•ฉํ•˜๋‹ค. (200 OK ๋ณด๋‹จ)
  • HTTP ์‘๋‹ต ๋ฉ”์‹œ์ง€๋Š” ์˜๋ฌธ/ํ•œ๊ธ€ ์—ฌ๋ถ€๋Š” ์ƒ๊ด€ ์—†๋‹ค.

โœ๏ธ ๋งˆ์น˜๋ฉฐ

์‹ค์Šต ๊ด€๋ จ ๊ณผ์ œ๋Š” ์ดํ•ดํ•  ์ˆ˜ ์žˆ๊ฒ ์ง€๋งŒ.
์ด๋ก  ๊ด€๋ จ๋œ ๊ณผ์ œ์˜ ๊ฒฝ์šฐ ๊ณต๋ถ€ํ•˜๋Š” ์‹œ๊ฐ„๋„ ์ ๋„ ์ดํ•ดํ•˜๋Š”๋ฐ ํ•œ๊ณ„๋ฅผ ๋Š๋ผ๊ฒŒ ๋œ๋‹ค.

์—ฌ๋Ÿฌ ๋ ˆํผ๋Ÿฐ์Šค๋ฅผ ์ฐธ๊ณ ํ•ด๋„ ์ดํ•ดํ•˜๊ธฐ ์–ด๋ ค์›Œ ์˜์ƒ ์œ„์ฃผ์˜ ๊ฐ•์˜๋ผ๋„
์ฐธ๊ณ ํ•ด์„œ ๋ณด๋ ค๊ณ  ํ•œ๋‹ค.

๊ณผ์ œํ•˜๋Š” ์‹œ๊ฐ„์ด ์ƒ๊ฐ ๋ณด๋‹ค ๋นจ๋ฆฌ ๋๋‚˜์„œ ๊ฐ™์ด ์ง„ํ–‰ํ•œ ํŽ˜์–ด๋ถ„๊ณผ
์ข…ํ•ฉ ํ€ด์ฆˆ๋ฅผ ํ’€์—ˆ๋‹ค. ๊ฐ™์ด ํ’€๋ฉด์„œ๋„ ์™œ ์ด๊ฒŒ ๋‹ต์ธ์ง€ ์ดํ•ด๊ฐ€ ์•ˆ ๋˜๋Š” ๋ถ€๋ถ„์ด
๊ฝค ๋์—ˆ๋‹ค.

์ฐธ๊ณ 
๐Ÿ”— https://velog.io/@kho5420/Web-API-๊ทธ๋ฆฌ๊ณ -EndPoint
๐Ÿ”— https://velog.io/@newdana01/TIL-RESTful-API
๐Ÿ”— https://helpcenter.veeam.com/docs/vac/rest/offset_query_v3.html?ver=70

๊ณต๋ถ€ํ•  ๋•Œ ์ฐธ๊ณ ํ•˜๊ธฐ ์ข‹์€ ์‚ฌ์ดํŠธ
๐Ÿ”— https://helpcenter.veeam.com/docs/vac/rest/overview_v3.html?ver=70

profile
๐Ÿ’ป ํ”„๋ก ํŠธ์—”๋“œ๋ฅผ ๋ชฉํ‘œ๋กœ ์„ฑ์žฅ ์ค‘! (์•Œ์•„๋ดค๋˜ ๋‚ด์šฉ ๋“ฑ์„ ์ •๋ฆฌํ•˜๊ธฐ)

0๊ฐœ์˜ ๋Œ“๊ธ€