RestAPI

API์˜ ์ •์˜

  • Application Programming Interface์˜ ์•ฝ์ž๋กœ, ์•ฑ์ด ์„œ๋ฒ„์—๊ฒŒ ์ •๋ณด๋ฅผ ์š”์ฒญํ•˜๋Š” ํ˜•์‹์ด๋‹ค.

  • ์ฆ‰ S/W๊ฐ€ ๋‹ค๋ฅธ S/W์—๊ฒŒ ๋ฐ์ดํ„ฐ๋ฅผ ์š”์ฒญํ•˜๊ธฐ์œ„ํ•œ ์ˆ˜๋‹จ์ด๋‹ค.

  • ๋„คํŠธ์›Œํฌ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋กœ์ปฌ ํ”„๋กœ๊ทธ๋žจ์—์„œ๋„ ์กด์žฌํ•œ๋‹ค. (๋ธŒ๋ผ์šฐ์ €์˜ webAPI)

RestAPI์˜ ์ •์˜

  • SOAP์˜ ๋ณต์žกํ•œ ํ˜•์‹์„ ๊ฐœ์„ ํ•˜๊ธฐ ์œ„ํ•ด rest๋ž€ ํ˜•์‹์˜ ์š”์ฒญ ํผ์ด๋‹ค.

  • ์š”์ฒญ์˜ ํ˜•ํƒœ๋งŒ ๋ณด๊ณ , ์–ด๋–ค ๋™์ž‘์ธ์ง€ ์–ด๋–ค ์ •๋ณด๋ฅผ ์œ„ํ•œ ๊ฒƒ์ธ์ง€ ์ถ”๋ก ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

    • restfulํ•œ API๋Š” ์ฃผ์†Œ๋งŒ ๋ณด๊ณ ๋„, ์–ด๋–ค ์š”์ฒญ์ธ์ง€ ํŒŒ์•…์ด ๊ฐ€๋Šฅํ•˜๋ฏ€๋กœ ๊ฐœ๋ฐœ์ž๊ฐ„ ํ˜‘์—…์— ์ข‹์€ ์—ญํ• ์„ ํ•œ๋‹ค.

  • HTTP ๊ทœ์•ฝ์— ๋”ฐ๋ผ ์‹ ํ˜ธ๋ฅผ ์ „์†กํ•˜๊ฒŒ ๋œ๋‹ค.

    • GET, DELETE, POST, PUT, PATCH๋ฅผ ์‚ฌ์šฉํ•˜๊ฒŒ ๋œ๋‹ค.

    • POST, PUT, PATCH์˜ ๊ฒฝ์šฐ ๊ฐ๊ฐ Body๊ฐ€ ์กด์žฌํ•ด์„œ ๋น„๊ต์ ์œผ๋กœ ์ •๋ณด๋ฅผ ๊ฐ์ถฐ์„œ ์ „์†กํ•  ์ˆ˜ ์žˆ๋‹ค.

    • ๊ธฐ๋Šฅ์ด ํŠน์ • ์šฉ๋„์— ์ œํ•œ๋˜์–ด์žˆ์ง€๋Š” ์•Š์ง€๋งŒ Restfulํ•˜๊ฒŒ API๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋ชฉ์ ์— ๋”ฐ๋ผ ๊ตฌ๋ถ„ํ•ด์„œ ์‚ฌ์šฉํ•ด์•ผํ•œ๋‹ค.

  • ์‹ ํ˜ธ

    • GET : ์กฐํšŒ

    • POST : ์ƒ์„ฑ, Body์— ๋ฐ์ดํ„ฐ๋ฅผ ๋„ฃ์–ด์„œ ๋ณด๋‚ธ๋‹ค. (๋ฐ์ดํ„ฐ๊ฐ€ ์ €์žฅ๋œ ํ›„ ์ธ๋ฑ์Šค๊ฐ€ ์ƒ์„ฑ๋˜๋ฏ€๋กœ, ์ธ๋ฑ์Šค๋Š” ์„ ์–ธํ•˜์ง€ ์•Š๋Š”๋‹ค.)

    • PUT, PATCH: ์—…๋ฐ์ดํŠธ, ์—…๋ฐ์ดํŠธํ•  ์ธ๋ฑ์Šค ๋ฒˆํ˜ธ๋ฅผ ์‚ฝ์ž…ํ•œ๋‹ค. BODY์— ์ƒˆ๋กœ์šด ์ •๋ณด๋ฅผ ๋„ฃ๋Š”๋‹ค.

      • PUT : ์ „์ฒด ์ •๋ณด๋ฅผ ์—…๋ฐ์ดํŠธ ํ•œ๋‹ค.

      • PATCH : ํŠน์ • ์ •๋ณด๋ฅผ ์—…๋ฐ์ดํŠธํ•œ๋‹ค.

      • ๊ฐ™์€ ์—ญํ• ์ด๋ฉฐ, ๊ทธ๋ฃน์—์„œ ๊ฒฐ์ •ํ•ด์„œ ์‚ฌ์šฉํ•œ๋‹ค.

    • DELETE : ์‚ญ์ œ, ํŠน์ • ์ธ๋ฑ์Šค ์ •๋ณด๋ฅผ ์‚ญ์ œํ•œ๋‹ค.

  • โ€œํ˜•์‹โ€์ด๊ธฐ ๋•Œ๋ฌธ์— ํŠน์ • ๊ธฐ์ˆ ์ด๋‚˜ ํ”„๋ ˆ์ž„์›Œํฌ์— ๊ตฌ์• ๋ฐ›์ง€ ์•Š๋Š”๋‹ค.

    • HTTP๋กœ ์ •๋ณด๋ฅผ ์ฃผ๊ณ ๋ฐ›๋Š”๋‹ค๋ฉด, restfulํ•œ ์„œ๋น„์Šค๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค. (restful api design guidelines๋ฅผ ๊ณต๋ถ€ํ•ด๋ณด์ž)

  • ์šฉ๋„์— ๋”ฐ๋ผ GraphicQL์„ ์‚ฌ์šฉํ•˜๊ธฐ๋„ ํ•œ๋‹ค.

Last updated