Hamutaro - Hamtaro 4

Frontend/Web

[Web] RESTful API ์„ค๊ณ„ ์›์น™

carsumin 2024. 10. 10. 14:14
RESTful API ๊ฐœ๋…
  • Representational State Transfer์˜ ์•ฝ์ž
  • ์ž์›์˜ ํ‘œํ˜„์— ์˜ํ•œ ์ƒํƒœ ์ „๋‹ฌ ์˜๋ฏธ
  • HTTP ํ”„๋กœํ† ์ฝœ ๊ธฐ๋ฐ˜, ์›น์˜ ๊ธฐ์ˆ ๊ณผ ๊ทœ์•ฝ ๊ทธ๋Œ€๋กœ ํ™œ์šฉํ•จ
  • RESTful API ๋Š” ํ”Œ๋žซํผ ๋…๋ฆฝ์ 

 

RESTful API ์„ค๊ณ„ ์›์น™
  • ์ž์›(Resource)์˜ ์‹๋ณ„
    • ๋ชจ๋“  ์ž์›์€ ๊ณ ์œ ํ•œ URI๋ฅผ ๊ฐ€์ง€๋ฉฐ, ์ด๋ฅผ ํ†ตํ•ด ์ž์›์„ ์‹๋ณ„ํ•จ
    • URI ๋Š” ์ธํ„ฐ๋„ท์ƒ์—์„œ ์ž์›์„ ๊ณ ์œ ํ•˜๊ฒŒ ์‹๋ณ„ํ•˜๊ณ  ์œ„์น˜๋ฅผ ์ง€์ •ํ•˜๋Š” ํ‘œ์ค€ ๋ฐฉ๋ฒ•
  • ์ž์›์— ๋Œ€ํ•œ ํ–‰์œ„๋Š” HTTP ๋ฉ”์„œ๋“œ๋ฅผ ํ†ตํ•ด ํ‘œํ˜„
    • HTTP ๋ฉ”์„œ๋“œ : GET, POST, PUT, DELETE
    • ์ž์›์— ๋Œ€ํ•œ CRUD ์—ฐ์‚ฐ์„ ๋ช…ํ™•ํ•˜๊ฒŒ ํ‘œํ˜„ ๊ฐ€๋Šฅ
  • ๋ฉ”์‹œ์ง€๋Š” ์ž๊ธฐ ์„œ์ˆ ์ 
    • ๋ฉ”์„ธ์ง€ ํฌ๋งท๊ณผ HTTP ๋ฉ”์„œ๋“œ ๋“ฑ์„ ํ†ตํ•ด ์š”์ฒญ์˜ ์˜๋„๋ฅผ ๋ช…ํ™•ํ•˜๊ฒŒ ํ•  ์ˆ˜ ์žˆ์Œ
  • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์ƒํƒœ๋Š” ํ•˜์ดํผ๋ฏธ๋””์–ด๋ฅผ ํ†ตํ•ด ๊ด€๋ฆฌ๋จ
    • ํด๋ผ์ด์–ธํŠธ๋Š” ํ•˜์ดํผ๋ฏธ๋””์–ด ๋งํฌ๋ฅผ ํ†ตํ•ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์ƒํƒœ๋ฅผ ์ „ํ™˜ํ•  ์ˆ˜ ์žˆ์Œ

 

RESTful API ์žฅ์ 
  • HTTP ํ”„๋กœํ† ์ฝœ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์›น์—์„œ ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋Š” ๊ธฐ์ˆ ๊ณผ ํ˜ธํ™˜ ๊ฐ€๋Šฅ
  • ํ”Œ๋žซํผ๊ณผ ์–ธ์–ด์— ๋…๋ฆฝ์ ์ด๊ธฐ ๋•Œ๋ฌธ์— ๋‹ค์–‘ํ•˜๊ฒŒ ์‚ฌ์šฉ ๊ฐ€๋Šฅ
  • ๊ฐ„๋‹จํ•˜๊ณ  ์ดํ•ดํ•˜๊ธฐ ์‰ฌ์šด ์ธํ„ฐํŽ˜์ด์Šค ์ œ๊ณต
  • ํ™•์žฅ์„ฑ๊ณผ ์žฌ์‚ฌ์šฉ์„ฑ -> Stateless ์•„ํ‚คํ…์ฒ˜๋ฅผ ๋”ฐ๋ฅด๊ธฐ ๋•Œ๋ฌธ์— ์„œ๋ฒ„์™€ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋…๋ฆฝ์ ์œผ๋กœ ํ™•์žฅ

 

์ถœ์ฒ˜

https://f-lab.kr/insight/understanding-restful-api-design-principles

 

RESTful API ์„ค๊ณ„ ์›์น™ ์ดํ•ดํ•˜๊ธฐ

RESTful API์˜ ๊ธฐ๋ณธ ๊ฐœ๋…, ์„ค๊ณ„ ์›์น™, ์žฅ์  ๋ฐ ํ˜„๋Œ€ ์›น ์„œ๋น„์Šค ๊ฐœ๋ฐœ์—์„œ์˜ ์ค‘์š”์„ฑ์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

f-lab.kr

 

'Frontend > Web' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[Web] HTTP ์ƒํƒœ ์ฝ”๋“œ  (0) 2024.12.01
[Web] HTTP ๋ฉ”์„œ๋“œ  (0) 2024.12.01
[Web] ์„ธ์…˜(Session)๊ณผ ์ฟ ํ‚ค(Cookie)  (0) 2024.07.30
[Web] ์–‘๋ฐฉํ–ฅ ํ†ต์‹  : Polling, Websocket  (0) 2024.07.23
[Web] RESTful API๋ž€?  (1) 2022.10.14