Frontend ๊ฐœ๋ฐœ์ž - hyo.loui

Restful API๋ž€? ๋ณธ๋ฌธ

Web

Restful API๋ž€?

hyo.loui 2023. 3. 27. 14:26

๐ŸŽฏ๋ชฉ์  :

Restful API์— ๋Œ€ํ•ด ๊ธฐ๋กํ•˜๋ฉฐ,

GET,POST ์™ธ์— ์•Œ๊ณ ์žˆ๋Š” ๋ฉ”์†Œ๋“œ์™€ ๊ทธ ๊ธฐ์ค€์„ ์„ค๋ช…ํ•˜๊ณ 

Restful API ๊ฐ€ ์•„๋‹Œ ๊ฒƒ๋“ค์€ ์–ด๋–ค๊ฒŒ ์žˆ๋Š”์ง€ ๊ธฐ๋กํ•ฉ๋‹ˆ๋‹ค.

 


Restful API๋ž€? 

 - Restful API๋Š” ํ‘œ์ค€ HTTP ๋ฉ”์„œ๋“œ ์ง‘ํ•ฉ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ์›น ์„œ๋น„์Šค๋ฅผ ์„ค๊ณ„ํ•˜๊ธฐ ์œ„ํ•œ ์•„ํ‚คํ…์ฒ˜ ์Šคํƒ€์ผ์ž…๋‹ˆ๋‹ค.
 
- Restful API์—์„œ ๊ฐ ๋ฆฌ์†Œ์Šค๋Š” ๊ณ ์œ ํ•œ URI๋กœ ์‹๋ณ„๋ฉ๋‹ˆ๋‹ค. ํด๋ผ์ด์–ธํŠธ(์˜ˆ: ์›น ๋ธŒ๋ผ์šฐ์ € ๋˜๋Š” ๋ชจ๋ฐ”์ผ ์•ฑ)๋Š” ํ‘œ์ค€ HTTP ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ด๋Ÿฌํ•œ ๋ฆฌ์†Œ์Šค์™€ ์ƒํ˜ธ ์ž‘์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
 
+ ์˜ˆ๋ฅผ ๋“ค์–ด, ํด๋ผ์ด์–ธํŠธ๋Š” ์š”์ฒญ ๋ณธ๋ฌธ์— ์‚ฌ์šฉ์ž ๋ฐ์ดํ„ฐ๋ฅผ ํฌํ•จํ•˜๋Š” JSON ๊ฐ์ฒด์™€ ํ•จ๊ป˜ 
URI: https://example.com/users๋กœ ์š”์ฒญ์„ ์ „์†กํ•˜์—ฌ ์„œ๋ฒ„์— POST ์š”์ฒญ์„ ์ „์†กํ•˜์—ฌ ์ƒˆ ์‚ฌ์šฉ์ž๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


GET,POST ์™ธ์— ์•Œ๊ณ ์žˆ๋Š” ๋ฉ”์†Œ๋“œ์™€ ๊ทธ ๊ธฐ์ค€์„ ์„ค๋ช… 

 - HTTP Method์˜ ์ข…๋ฅ˜์—๋Š” GET, POST, PATCH, PUT, DELETE๋“ฑ์ด ์žˆ์œผ๋ฉฐ PATCH์š”์ฒญ์€ ๋ฐ์ดํ„ฐ์˜ ์ผ๋ถ€๋งŒ ๋ณ€๊ฒฝํ•  ๋•Œ, PUT์€ ๋ฐ์ดํ„ฐ ์ „์ฒด๋ฅผ ๋ณ€๊ฒฝํ•  ๋•Œ, DELETE๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์‚ญ์ œํ•  ๋•Œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.


Restful API๊ฐ€ ์•„๋‹Œ ๊ฒƒ? 

- restful์™ธ์˜ API์„ค๊ณ„ ๊ทœ์น™์€ ๋‹ค์–‘ํ•˜๊ฒŒ ์žˆ์ง€๋งŒ, ์ตœ๊ทผ ๊ฐ€์žฅ ๊ธ‰๋ถ€์ƒํ•˜๋Š” API ์„ค๊ณ„ ๊ทœ์น™์€ ํŽ˜์ด์Šค๋ถ์—์„œ ์ œ์ž‘ํ•œ GraphQL์ž…๋‹ˆ๋‹ค.
- GraphQL์€ ๋‹จ์ผ ์—”๋“œํฌ์ธํŠธ์— ๋‹ค์–‘ํ•œ ์ฟผ๋ฆฌ๋ฌธ์„ ํ†ตํ•ด ์„œ๋ฒ„์™€ ํ†ต์‹ ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.
- ํŠนํžˆ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋งŒ ์š”์ฒญํ•  ์ˆ˜ ์žˆ๋„๋ก ์ง€์›ํ•ด, ์„œ๋ฒ„์ธก์—์„œ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋งŒ ๋ฐ˜ํ™˜ํ•จ์œผ๋กœ์จ ๋ฐ์ดํ„ฐ ์ „์†ก๋Ÿ‰์„ - ์ตœ์†Œํ™”ํ•˜๊ณ  ๋ถˆํ•„์š”ํ•œ ์ค‘๋ณต ์š”์ฒญ์„ ์ค„์ด๋Š” ํšจ๊ณผ๋ฅผ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
- ํ•˜์ง€๋งŒ GraphQL์€ JSON์œผ๋กœ ํ†ต์‹ ์„ ํ•ด์•ผํ•˜๊ธฐ ๋•Œ๋ฌธ์—, ํŒŒ์ผ์„ ์—…๋กœ๋“œ ํ•  ๋•Œ ๋ถˆํŽธํ•จ์ด ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ๋ณด์™„ํ•˜๊ธฐ ์œ„ํ•ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋“ฑ์„ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.


 

 ์ตœ์ข… ์ •๋ฆฌ 

  • Restful API๋Š” HTTP ๊ธฐ๋ฐ˜์˜ API ์„ค๊ณ„ ๊ทœ์น™์ž…๋‹ˆ๋‹ค.
  • URI๋ผ๊ณ ํ•˜๋Š” ์ž์›๊ณผ ๊ทธ์— ๋Œ€ํ•œ ๋™์ž‘์„ ์ˆ˜ํ–‰ํ•˜๋Š” Method๋กœ ์ •์˜๋ฉ๋‹ˆ๋‹ค.
  • Method์˜ ์ข…๋ฅ˜์—๋Š” GET, POST, PATCH, PUT, DELETE๋“ฑ์ด ์žˆ์œผ๋ฉฐ PATCH์š”์ฒญ์€ ๋ฐ์ดํ„ฐ์˜ ์ผ๋ถ€๋งŒ ๋ณ€๊ฒฝํ•  ๋•Œ, PUT์€ ๋ฐ์ดํ„ฐ ์ „์ฒด๋ฅผ ๋ณ€๊ฒฝํ•  ๋•Œ, DELETE๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์‚ญ์ œํ•  ๋•Œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

 

  • restful ์ด์™ธ์˜ API์„ค๊ณ„ ๊ทœ์น™์€ ๋‹ค์–‘ํ•˜๊ฒŒ ์žˆ์œผ๋‚˜, ๋– ์˜ค๋ฅด๋Š” API ์„ค๊ณ„ ๊ทœ์น™์€ ํŽ˜์ด์Šค๋ถ์—์„œ ์ œ์ž‘ํ•œ GraphQL์ž…๋‹ˆ๋‹ค.
  • GraphQL์€ ๋‹จ์ผ ์—”๋“œํฌ์ธํŠธ์— ๋‹ค์–‘ํ•œ ์ฟผ๋ฆฌ๋ฌธ์„ ํ†ตํ•ด ์„œ๋ฒ„์™€ ํ†ต์‹ ํ•˜๊ณ  ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋งŒ ๋ฐ˜ํ™˜ํ•จ์œผ๋กœ์จ ๋ฐ์ดํ„ฐ ์ „์†ก๋Ÿ‰์„ ์ตœ์†Œํ™”ํ•ด ๋ถˆํ•„์š”ํ•œ ์ค‘๋ณต ์š”์ฒญ์„ ์ค„์ด๋Š” ํšจ๊ณผ๋ฅผ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • GraphQL์€ JSON์œผ๋กœ ํ†ต์‹ ์„ ํ•˜๊ธฐ ๋•Œ๋ฌธ์—, ํŒŒ์ผ์„ ์—…๋กœ๋“œ ํ•˜๊ธฐ ๊นŒ๋‹ค๋กœ์›Œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ํ™œ์šฉ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.