ABOUT ME

Today
Yesterday
Total
  • RESTful API๋ž€?
    Node.js 2023. 11. 14. 14:44

    ๐Ÿฅ• RESTful API๋ž€?

    REpresentational State Transfer์˜ ์•ฝ์ž๋กœ ์†Œํ”„ํŠธ์›จ์–ด ํ”„๋กœ๊ทธ๋žจ ์•„ํ‚คํ…์ฒ˜์˜ ํ•œ ํ˜•์‹ 
    ๋‘ ์ปดํ“จํ„ฐ ์‹œ์Šคํ…œ์ด ์ธํ„ฐ๋„ท์„ ํ†ตํ•ด ์ •๋ณด๋ฅผ ์•ˆ์ „ํ•˜๊ฒŒ ๊ตํ™˜ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ์ธํ„ฐํŽ˜์ด์Šค๋กœ
    RSET๋Š” ์ž์›์„ ์ด๋ฆ„์œผ๋กœ ๊ตฌ๋ถ„ํ•˜์—ฌ ํ•ด๋‹น ์ž์›์˜ ์ƒํƒœ๋ฅผ ์ฃผ๊ณ ๋ฐ›๋Š” ๋ชจ๋“  ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค
    => HTTP Method(POST, GET, PUT, DELETE, PATCH ๋“ฑ)์„ ํ†ตํ•ด์„œ ํ•จ

     

    ๐Ÿ’ก HTTP Method

    CRUD Operation์ด๋ž€?

    ๋Œ€๋ถ€๋ถ„์˜ ์ปดํ“จํ„ฐ ์†Œํ”„ํŠธ์›จ์–ด๊ฐ€ ๊ฐ€์ง€๋Š” ๊ธฐ๋ณธ์ ์ธ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ๊ธฐ๋Šฅ์ธ
    Create(์ƒ์„ฑ), Read(์ฝ๊ธฐ), Update(๊ฐฑ์‹ ), Delete(์‚ญ์ œ)๋ฅผ ๋ฌถ์–ด์„œ ์ผ์ปซ๋Š” ๋ง
    Create : ๋ฐ์ดํ„ฐ ์ƒ์„ฑ(POST)
    Read : ๋ฐ์ดํ„ฐ ์กฐํšŒ(GET)
    Update : ๋ฐ์ดํ„ฐ ์ˆ˜์ •(PUT, PATCH)
    Delete : ๋ฐ์ดํ„ฐ ์‚ญ์ œ(DELETE)

    ๐Ÿฅ• API๋ž€?

    ์›น API๋Š” ํด๋ผ์ด์–ธํŠธ์™€ ์›น ๋ฆฌ์†Œ์Šค ์‚ฌ์ด์˜ ๊ฒŒ์ดํŠธ์›จ์ด

     

    ์ด์ „ํฌ์ŠคํŒ…์—์„œ ๋น„์œ ํ•ด์„œ ์„ค๋ช…ํ•ด๋‘์—ˆ๋‹ค.

    https://hanol2.tistory.com/7

     

    API๋ž€ ๋ฌด์—‡์ธ๊ฐ€

    API (Application Programing Interface) ๋น„์œ ๋ฅผ ํ•˜์ž๋ฉด! ์šฐ๋ฆฌ๋Š” ๋ง›์ง‘์„ ๊ฐ”๋‹ค ๋‚ด๊ฐ€ ๋ง›์žˆ๋Š” ๋ž์Šคํƒ€๋ฅผ ๊ณ ๋ฅด๋ฉด, ์ง์›์ด ์ฃผ๋ฌธ์„ ๋ฐ›์•„ ์š”๋ฆฌ์‚ฌ์—๊ฒŒ ์š”์ฒญ์„ ํ•œ๋‹ค ๊ทธ๋Ÿฌ๋ฉด ์š”๋ฆฌ์‚ฌ๋Š” ๋ž์Šคํƒ€๋ฅผ ์š”๋ฆฌํ•ด์„œ ์ง์›์—๊ฒŒ ์ฃผ๊ณ 

    hanol2.tistory.com

     

    ํด๋ผ์ด์–ธํŠธ

    ์›น์—์„œ ์ •๋ณด์— ์—‘์„ธ์Šคํ•˜๋ ค๋Š” ์‚ฌ์šฉ์ž
    ex) api๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์‚ฌ๋žŒ, ์†Œํ”„ํŠธ์›จ์–ด ์‹œ์Šคํ…œ

     

    ๋ฆฌ์†Œ์Šค

    ๋‹ค์–‘ํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์ œ๊ณตํ•˜๋Š” ์ •๋ณด
    ํด๋ผ์ด์–ธํŠธ์— ๋ฆฌ์†Œ์Šค๋ฅผ ์ œ๊ณตํ•˜๋Š” ์‹œ์Šคํ…œ์„ ์„œ๋ฒ„๋ผ๊ณ ๋„ ํ•จ
    ์กฐ์ง์€ API๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฆฌ์†Œ์Šค๋ฅผ ๊ณต์œ ํ•˜๊ณ  ๋ณด์•ˆ, ์ œ์–ด ๋ฐ ์ธ์ฆ์„ ์œ ์ง€ํ•˜๋ฉด์„œ ์›น ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•จ
    ex) ์ด๋ฏธ์ง€, ๋™์˜์ƒ, ํ…์ŠคํŠธ, ์ˆซ์ž ๋˜๋Š” ๋ชจ๋“  ์œ ํ˜•์˜ ๋ฐ์ดํ„ฐ

     

     

    ๐Ÿฅ• REST์˜ ๊ตฌ์„ฑ์š”์†Œ

    ์ž์›(Resource) - URL
    ํ–‰์œ„(Verb) - Http Method
    ํ‘œํ˜„(Representations)

     

    1. ์ž์› (Resource) URL

    • ๋ชจ๋“  ์ž์›์— ๊ณ ์œ ํ•œ ID๊ฐ€ ์กด์žฌํ•˜๊ณ , ์ด ์ž์›์€ Server์— ์กด์žฌํ•œ๋‹ค.
    • ์ž์›์„ ๊ตฌ๋ณ„ํ•˜๋Š” ID๋Š” /movie/movie_name/1 ์™€ ๊ฐ™์€ HTTP URI ์ด๋‹ค.
    • Client๋Š” URI๋ฅผ ์ด์šฉํ•ด์„œ ์ž์›์„ ์ง€์ •ํ•˜๊ณ  ํ•ด๋‹น ์ž์›์˜ ์ƒํƒœ(์ •๋ณด)์— ๋Œ€ํ•œ ์กฐ์ž‘์„ Server์— ์š”์ฒญํ•œ๋‹ค.

    2. ํ–‰์œ„ (Verb) - Http Method

    • HTTP ํ”„๋กœํ† ์ฝœ์˜ Method๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.
    • HTTP ํ”„๋กœํ† ์ฝœ์€ GET, POST, PUT, DELETE์™€ ๊ฐ™์€ ๋ฉ”์„œ๋“œ๋ฅผ ์ œ๊ณตํ•จ

    3. ํ‘œํ˜„ (Representaion of Resource)

    • Client๊ฐ€ ์ž์›์˜ ์ƒํƒœ (์ •๋ณด)์— ๋Œ€ํ•œ ์กฐ์ž‘์„ ์š”์ฒญํ•˜๋ฉด Server๋Š” ์ด์— ์ ์ ˆํ•œ ์‘๋‹ต (Representation)์„ ๋ณด๋‚ธ๋‹ค
    • REST์—์„œ ํ•˜๋‚˜์˜ ์ž์›์€ JSON, XML, TEXT, RSS ๋“ฑ ์—ฌ๋Ÿฌ ํ˜•ํƒœ์˜ ์‘๋‹ต์„ ๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค.
    • ํ˜„์žฌ๋Š” JSON์œผ๋กœ ์ฃผ๊ณ  ๋ฐ›๋Š” ๊ฒƒ์ด ๋Œ€๋ถ€๋ถ„์ด๋‹ค.

     

    โ—REST API ์™€ RESTful API์˜ ์ฐจ์ด?

    REST API 

    => REST ๊ธฐ๋ฐ˜์œผ๋กœ ์„œ๋น„์Šค API๋ฅผ ๊ตฌํ˜„ํ•œ ๊ฒƒ

    RESTful ํ•˜๋‹ค?

    REST ์›๋ฆฌ๋ฅผ ๋”ฐ๋ฅด๋Š” ์‹œ์Šคํ…œ์€ RESTful์ด๋ž€ ์šฉ์–ด๋กœ ์ง€์นญ

    => โ€˜REST APIโ€™๋ฅผ ์ œ๊ณตํ•˜๋Š” ์›น ์„œ๋น„์Šค๋ฅผ โ€˜RESTfulโ€™ํ•˜๋‹ค๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค.

     

    ๐Ÿฅ• REST API ์„ค๊ณ„ ๊ทœ์น™

    1) ๋ช…์‚ฌ, ์†Œ๋ฌธ์ž => ๋™์‚ฌx
    2) ๋ช…์‚ฌ๋Š” ๋ณต์ˆ˜ํ˜•
    3) URI ๋งˆ์ง€๋ง‰์€ / ํฌํ•จx
    4) URI๋Š” ์–ธ๋”๋ฐ”x ํ•˜์ดํ”ˆ ์‚ฌ์šฉ -
    5) ํŒŒ์ผ์˜ ํ™•์žฅ์ž๋ฅผ ํ‘œ์‹œx

Designed by Tistory.