Skip to content

Latest commit

ย 

History

History
208 lines (133 loc) ยท 9.34 KB

File metadata and controls

208 lines (133 loc) ยท 9.34 KB

๋ชฉ์ฐจ

REST API ์ •๋ฆฌ

๋กœ์ด ํ•„๋”ฉ์˜ 2000๋…„ ๋ฐ•์‚ฌํ•™์œ„ ๋…ผ๋ฌธ์—์„œ ์†Œ๊ฐœ๋˜์–ด ์ง€๊ธˆ๊นŒ์ง€ ๋งŽ์ด ์‚ฌ์šฉ๋˜๊ณ  ์žˆ๋Š” REST API์— ๋Œ€ํ•ด ์ •๋ฆฌํ•œ ์ž๋ฃŒ.

1 REST

1-1 REST๋ž€?

image-20200915021652089

๐Ÿค” REST (Representational State Transfer)

  • ๋ถ„์‚ฐ ํ•˜์ดํผ๋ฏธ๋””์–ด ์‹œ์Šคํ…œ (์˜ˆ : ์›น)์„ ์œ„ํ•œ ์•„ํ‚คํ…์ณ ์Šคํƒ€์ผ
    • ์•„ํ‚คํ…์ณ ์Šคํƒ€์ผ: ์ œ์•ฝ์กฐ๊ฑด๋“ค์˜ ์ง‘ํ•ฉ
    • ์ฆ‰, REST์˜ ์ œ์•ฝ์กฐ๊ฑด๋“ค์„ ๋ชจ๋‘ ์ง€์ผœ์•ผ REST์ธ ๊ฒƒ์ด๋‹ค.
  • ์ž์›์„ ์ด๋ฆ„(์ž์›์˜ ํ‘œํ˜„)์œผ๋กœ ๊ตฌ๋ถ„ํ•˜์—ฌ ํ•ด๋‹น ์ž์›์˜ ์ƒํƒœ(์ •๋ณด)๋ฅผ ์ฃผ๊ณ  ๋ฐ›๋Š” ๋ชจ๋“  ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค.
    • ์ž์›(Resource)์˜ ํ‘œํ˜„(Representation)์— ์˜ํ•œ ์ƒํƒœ ์ „๋‹ฌ
  • CRUD
    • Create - ์ƒ์„ฑ (POST)
    • Read - ์กฐํšŒ (GET)
    • Update - ์ˆ˜์ • (PUT)
    • Delete - ์‚ญ์ œ (DELETE)
    • Header - header ์ •๋ณด ์กฐํšŒ (HEAD)

1-2 REST ๊ตฌ์„ฑ

  • ์ž์› (Resource) : URI
    • ๋ชจ๋“  ์ž์›์€ URI๋ผ๋Š” ๊ณ ์œ ํ•œ ID๊ฐ€ ์กด์žฌํ•˜๋ฉฐ, ์ž์›์€ ์„œ๋ฒ„์— ์กด์žฌํ•œ๋‹ค.
    • ํด๋ผ์ด์–ธํŠธ๋Š” URI๋งŒ์œผ๋กœ ์ž์›์„ ์ง€์ •ํ•˜๊ณ  ํ•ด๋‹น ์ž์›์˜ ์ƒํƒœ(์ •๋ณด)์— ๋Œ€ํ•œ ์กฐ์ž‘์„ ์„œ๋ฒ„์— ์š”์ฒญํ•œ๋‹ค.
  • ํ–‰์œ„ (Verb) : HTTP method
    • GET, POST, PUT, DELETE
  • ํ‘œํ˜„ (Representation)
    • ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ž์›์˜ ์ƒํƒœ(์ •๋ณด)์— ๋Œ€ํ•œ ์กฐ์ž‘์„ ์š”์ฒญํ•˜๋ฉด ์„œ๋ฒ„๋Š” ์ด์— ์ ์ ˆํ•œ ์‘๋‹ต์„ ๋ณด๋‚ธ๋‹ค.
    • REST์—์„œ ํ•˜๋‚˜์˜ ์ž์›์€ JSON, XML๋“ฑ ์—ฌ๋Ÿฌ ํ˜•ํƒœ์˜ Representation (ํ‘œํ˜„)์œผ๋กœ ๋‚˜ํƒ€๋‚ด์–ด ์งˆ ์ˆ˜ ์žˆ๋‹ค.

1-3 REST์˜ ์ œ์•ฝ์กฐ๊ฑด ( ํŠน์ง• )

๐Ÿ’โ€โ™‚๏ธ REST๋Š” ์ œ์•ฝ์กฐ๊ฑด์„ ๋ชจ๋‘ ์ง€์ผœ์•ผ REST์ด๋‹ค.

  1. client - server
    • ์„œ๋ฒ„์™€ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๊ฐ๊ฐ ์—ญํ• ์„ ํ™•์‹คํžˆ ๊ตฌ๋ถ„ํ•˜์—ฌ ์„œ๋กœ๊ฐ„์˜ ์˜์กด์„ฑ์„ ์ค„์ธ๋‹ค.
      • ์„œ๋ฒ„ : REST API ์ œ๊ณต, ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง ์ฒ˜๋ฆฌ ๋‹ด๋‹น.
      • ํด๋ผ์ด์–ธํŠธ : ์‚ฌ์šฉ์ž ์ธ์ฆ, ์ปจํ…์ŠคํŠธ (์„ธ์…˜, ๋กœ๊ทธ์ธ ์ •๋ณด)๋“ฑ์„ ๊ด€๋ฆฌ๋ผ๊ณ  ์ฑ…์ž„์ง„๋‹ค.
  2. stateless (๋ฌด์ƒํƒœ์„ฑ)
    • REST๋Š” ์ž‘์—…์„ ์œ„ํ•œ ์ƒํƒœ์ •๋ณด๋ฅผ ๋”ฐ๋กœ ์ €์žฅํ•˜๊ณ  ๊ด€๋ฆฌํ•˜์ง€ ์•Š๋Š”๋‹ค.
    • ์ฆ‰, ์„ธ์…˜ ์ •๋ณด๋‚˜ ์ฟ ํ‚ค์ •๋ณด๋ฅผ ๋ณ„๋„๋กœ ์ €์žฅํ•˜๊ณ  ๊ด€๋ฆฌํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— API ์„œ๋ฒ„๋Š” ๋“ค์–ด์˜ค๋Š” ์š”์ฒญ๋งŒ์„ ๋‹จ์ˆœํžˆ ์ฒ˜๋ฆฌํ•˜๋ฉด ๋œ๋‹ค.
    • ์„œ๋น„์Šค์˜ ์ž์œ ๋„๊ฐ€ ๋†’์•„์ง€๊ณ  ์„œ๋ฒ„์—์„œ ๋ถˆํ•„์š”ํ•œ ์ •๋ณด๋ฅผ ๊ด€๋ฆฌํ•˜์ง€ ์•Š์Œ์œผ๋กœ์จ ๊ตฌํ˜„์ด ๋‹จ์ˆœํ•ด์ง„๋‹ค.
  3. cache (์บ์‹œ)
    • REST๋Š” HTTP ์›น ํ‘œ์ค€์„ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์—, ์›น์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ์กด ์ธํ”„๋ผ๋ฅผ ๊ทธ๋Œ€๋กœ ํ™œ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. ๋”ฐ๋ผ์„œ HTTP๊ฐ€ ๊ฐ€์ง„ ์บ์‹ฑ ๊ธฐ๋Šฅ์ด ์ ์šฉ ๊ฐ€๋Šฅํ•˜๋‹ค.
  4. uniform interface
    • ์ œ์•ฝ ์กฐ๊ฑด
      • identification of resources - ๋ฆฌ์†Œ์Šค๊ฐ€ URL๋กœ ์‹๋ณ„๋˜๋ฉด ๋œ๋‹ค.
      • manipulation of resources through representations - REST๋ฅผ ์ด์šฉํ•ด์„œ ๋ฆฌ์†Œ์Šค๋ฅผ ์กฐ์ž‘ํ•  ์ˆ˜ ์žˆ์–ด์•ผํ•œ๋‹ค.
      • self-descriptive messages - ๋ฉ”์‹œ์ง€๋Š” ์Šค์Šค๋กœ๋ฅผ ์„ค๋ช…๋˜์•ผํ•ด์•ผํ•œ๋‹ค.
        • ๋ฉ”์‹œ์ง€๋งŒ ๋ณด๊ณ ๋„ ์‰ฝ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ์ž์ฒด ํ‘œํ˜„ ๊ตฌ์กฐ๋กœ ๋˜์–ด ์žˆ์–ด์•ผํ•œ๋‹ค.
      • hypermedia as the engine of application state (HATEOAS) - ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์ƒํƒœ๋Š” Hyperlink๋ฅผ ์ด์šฉํ•ด ์ „์ด๋˜์–ด์•ผํ•œ๋‹ค. (์‚ฌ์ดํŠธ์˜ ๋ฒ„ํŠผ(ํ•˜์ดํผ๋งํฌ)๋ฅผ ํ†ตํ•ด ์ „์ด๋ฅผ ํ•ด์•ผํ•œ๋‹ค.)
    • ์™œ uniform interface๋ฅผ ์ง€์ผœ์•ผ ํ•˜๋Š”๊ฐ€? - ๋…๋ฆฝ์  ์ง„ํ™”๋•Œ๋ฌธ
      • ์„œ๋ฒ„์™€ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๊ฐ๊ฐ ๋…๋ฆฝ์ ์œผ๋กœ ์ง„ํ™”ํ•˜๊ธฐ ์œ„ํ•ด
      • ์„œ๋ฒ„์˜ ๊ธฐ๋Šฅ์ด ๋ณ€๊ฒฝ๋˜์–ด๋„ ํด๋ผ์ด์–ธํŠธ๋ฅผ ์—…๋ฐ์ดํŠธํ•  ํ•„์š”๊ฐ€ ์—†๋‹ค.
      • REST๋ฅผ ๋งŒ๋“ค๊ฒŒ ๋œ ๊ณ„๊ธฐ : How do i improve HTTP without breaking the Web.
      • ์ƒํ˜ธ์šด์šฉ์„ฑ - HTTP์—์„œ ๊ธ€์ž ํ•˜๋‚˜ ๋ฐ”๊พธ๋ฉด ์ด์ „์— ๋‚˜์™”๋˜ ์›น์—์„  ์ด๋ฅผ ์ธ์‹๋ชปํ•  ์ˆ˜๋„ ์žˆ๊ธฐ ๋•Œ๋ฌธ.
  5. layered system (๊ณ„์ธตํ˜•)
    • REST ์„œ๋ฒ„๋Š” ๋‹ค์ค‘ ๊ณ„์ธต์œผ๋กœ ๊ตฌ์„ฑ๋  ์ˆ˜ ์žˆ์œผ๋ฉฐ ๋ณด์•ˆ, ๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑ, ์•”ํ˜ธํ™” ๊ณ„์ธต์„ ์ถ”๊ฐ€ํ•ด ๊ตฌ์กฐ์ƒ์˜ ์œ ์—ฐ์„ฑ์„ ๋‘˜ ์ˆ˜ ์žˆ๊ณ  ํ”„๋ก์‹œ, ๊ฒŒ์ดํŠธ์›จ์ด ๊ฐ™์€ ๋„คํŠธ์›Œํฌ ๊ธฐ๋ฐ˜์˜ ์ค‘๊ฐ„๋งค์ฒด๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•œ๋‹ค.
  6. code-on-demand (optional)
    • ์„œ๋ฒ„์—์„œ ์ฝ”๋“œ๋ฅผ ํด๋ผ์ด์–ธํŠธ๋กœ ๋ณด๋‚ด์„œ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค. (JS)

ํ˜„์žฌ REST API๋กœ ๋ถˆ๋ฆฌ๋Š” ๋Œ€๋ถ€๋ถ„์˜ API๋Š” ๋กœ์ด ํ•„๋”ฉ์ด ์ •์˜ํ•œ REST๋ฅผ ๋”ฐ๋ฅด์ง€ ์•Š๊ณ  ์žˆ์œผ๋ฉฐ, ๊ทธ์ค‘์—์„œ๋„ ํŠนํžˆ Self-descriptive Message์™€ HATEOAS๊ฐ€ ์ง€์ผœ์ง€์ง€ ์•Š์Œ์„ ์ง€์ ํ•˜์˜€๋‹ค. - ๊ทธ๋Ÿฐ rest api๋กœ ๊ดœ์ฐฎ์€๊ฐ€ -

2 REST API

2-1 REST API๋ž€

๐Ÿค” REST API

  • REST ๊ธฐ๋ฐ˜์˜ ๊ทœ์น™๋“ค์„ ์ง€์ผœ์„œ ์„ค๊ณ„๋œ API
  • REST๋Š” HTTP ํ‘œ์ค€์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ตฌํ˜„ํ•˜๋ฏ€๋กœ, HTTP๋ฅผ ์ง€์›ํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ ์–ธ์–ด๋กœ ํด๋ผ์ด์–ธํŠธ, ์„œ๋ฒ„๋ฅผ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค.

2-2 REST API ์„ค๊ณ„ ํ•„์ˆ˜ ๊ทœ์น™

๐Ÿค” ๋ฆฌ์†Œ์Šค์˜ ํ‘œํ˜„ ๋ฐฉ์‹

  • document : ๊ฐ์ฒด ์ธ์Šคํ„ด์Šค, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๋ ˆ์ฝ”๋“œ์™€ ์œ ์‚ฌํ•œ ๊ฐœ๋…. ๋ฆฌ์†Œ์Šค ์ง‘ํ•ฉ(collection)์˜ ์ธ์Šคํ„ด์Šค
  • collection : ๋‹จ์ผ ๋ฆฌ์†Œ์Šค(document)๋“ค์˜ ๋ฌถ์Œ. ๋””๋ ‰ํ† ๋ฆฌ
  • store : ํด๋ผ์ด์–ธํŠธ ์ž…์žฅ์—์„œ์˜ ๋ฆฌ์†Œ์Šค ์ €์žฅ์†Œ.

๐Ÿ’โ€โ™‚๏ธ REST API ์„ค๊ณ„์— ์žˆ์–ด ๋ฌด์—‡๋ณด๋‹ค ์ค‘์š”ํ•œ ๋‘ ๊ฐ€์ง€

  1. URI๋Š” ์ •๋ณด์˜ ์ž์›์„ ํ‘œํ˜„ํ•ด์•ผ ํ•œ๋‹ค.

    • ๋ฆฌ์†Œ์Šค๋Š” ๋™์‚ฌ๊ฐ€ ์•„๋‹Œ ๋ช…์‚ฌ๋กœ ํ‘œํ˜„ํ•œ๋‹ค. ๋Œ€๋ฌธ์ž๋ณด๋‹ค๋Š” ์†Œ๋ฌธ์ž๋ฅผ ์‚ฌ์šฉ.
    • ๋ฆฌ์†Œ์Šค์˜ ๋„ํ๋จผํŠธ ์ด๋ฆ„์œผ๋กœ๋Š” ๋‹จ์ˆ˜ ๋ช…์‚ฌ๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.
    • ๋ฆฌ์†Œ์Šค์˜ ์ปฌ๋ ‰์…˜ ์ด๋ฆ„์œผ๋กœ๋Š” ๋ณต์ˆ˜ ๋ช…์‚ฌ๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.
    • ๋ฆฌ์†Œ์Šค์˜ ์Šคํ† ์–ด ์ด๋ฆ„์œผ๋กœ๋Š” ๋ณต์ˆ˜ ๋ช…์‚ฌ๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.
  2. ์ž์›์— ๋Œ€ํ•œ ํ–‰์œ„๋Š” HTTP Method (GET, PUT, POST, DELETE)๋กœ ํ‘œํ˜„ํ•œ๋‹ค.

    • URI์— HTTP Method๊ฐ€ ๋“ค์–ด๊ฐ€๋ฉด ์•ˆ๋œ๋‹ค.
      • GET /users/delete/1 -> DELETE /users/1
    • URI์— ํ–‰์œ„์— ๋Œ€ํ•œ ๋™์‚ฌ ํ‘œํ˜„์ด ๋“ค์–ด๊ฐ€๋ฉด ์•ˆ๋œ๋‹ค.
      • GET /users/show/1 -> GET /users/1
      • GET /users/insert/1 -> POST /users/1
    • ๊ฒฝ๋กœ ๋ถ€๋ถ„ ์ค‘ ๋ณ€ํ•˜๋Š” ๋ถ€๋ถ„์€ ์œ ์ผํ•œ ๊ฐ’์œผ๋กœ ๋Œ€์ฒดํ•œ๋‹ค.

2-3 REST API ์„ค๊ณ„ ์‹œ ์ฃผ์˜ํ•  ์ 

  1. ์Šฌ๋ž˜์‹œ ๊ตฌ๋ถ„์ž(/)๋Š” ๊ณ„์ธต ๊ด€๊ณ„๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๋ฐ ์‚ฌ์šฉ๋œ๋‹ค.

    • http://restapi.example.com/houses/apartments
  2. URL ๋งˆ์ง€๋ง‰ ๋ฌธ์ž๋กœ ์Šฌ๋ž˜์‹œ(/)๋ฅผ ํฌํ•จํ•˜์ง€ ์•Š๋Š”๋‹ค.

    • URI์— ํฌํ•จ๋˜๋Š” ๋ชจ๋“  ๊ธ€์ž๋Š” ๋ฆฌ์†Œ์Šค์˜ ์œ ์ผํ•œ ์‹๋ณ„์ž๋กœ ์‚ฌ์šฉ๋˜์–ด์•ผ ํ•˜๋ฉฐ URI๊ฐ€ ๋‹ค๋ฅด๋‹ค๋Š” ๊ฒƒ์€ ๋ฆฌ์†Œ์Šค๊ฐ€ ๋‹ค๋ฅด๋‹ค๋Š” ๊ฒƒ์ด๊ณ , ์—ญ์Šค๋กœ ๋ฆฌ์†Œ์Šค๊ฐ€ ๋‹ค๋ฅด๋ฉด URI๋„ ๋‹ฌ๋ผ์ ธ์•ผ ํ•œ๋‹ค.
    • REST API๋Š” ๋ถ„๋ช…ํ•œ URI๋ฅผ ๋งŒ๋“ค์–ด ํ†ต์‹ ์„ ํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํ˜ผ๋™์„ ์ฃผ์ง€ ์•Š๋„๋ก URI ๊ฒฝ๋กœ์˜ ๋งˆ์ง€๋ง‰์—๋Š” ์Šฌ๋ž˜์‹œ(/)๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค.
      • http://restapi.example.com/houses/apartments/ (x)
  3. ํ•˜์ดํ”ˆ (-)์€ URI ๊ฐ€๋…์„ฑ์„ ๋†’์ด๋Š”๋ฐ ์‚ฌ์šฉ

    • ๋ถˆ๊ฐ€ํ”ผํ•˜๊ธฐ ๊ธด URI ๊ฒฝ๋กœ๋ฅผ ์‚ฌ์šฉํ•˜๊ฒŒ ๋œ๋‹ค๋ฉด ํ•˜์ดํ”ˆ์„ ์‚ฌ์šฉํ•ด ๊ฐ€๋…์„ฑ์„ ๋†’์ผ ์ˆ˜ ์žˆ๋‹ค.
  4. ๋ฐ‘์ค„ (_)์€ URI์— ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค.

    • ๋ฐ‘์ค„ ๋Œ€์‹  ํ•˜์ดํ”ˆ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.
  5. URL ๊ฒฝ๋กœ์—๋Š” ์†Œ๋ฌธ์ž๊ฐ€ ์ ํ•ฉํ•˜๋‹ค.

    • ๋Œ€์†Œ๋ฌธ์ž์— ๋”ฐ๋ผ ๋‹ค๋ฅธ ๋ฆฌ์†Œ์Šค๋กœ ์ธ์‹ํ•˜๊ฒŒ ๋˜๊ธฐ ๋•Œ๋ฌธ์— ๋Œ€๋ฌธ์ž์˜ ์‚ฌ์šฉ์€ ํ”ผํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.
    • RFC 3986(URI ๋ฌธ๋ฒ• ํ˜•์‹)์€ URI ์Šคํ‚ค๋งˆ์™€ ํ˜ธ์ŠคํŠธ๋ฅผ ์ œ์™ธํ•˜๊ณ ๋Š” ๋Œ€์†Œ๋ฌธ์ž๋ฅผ ๊ตฌ๋ณ„ํ•˜๋„๋ก ๊ทœ์ •ํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.
  6. ํŒŒ์ผ ํ™•์žฅ์ž๋Š” URI์— ํฌํ•จ์‹œํ‚ค์ง€ ์•Š๋Š”๋‹ค.

    • REST API์—์„œ๋Š” ๋ฉ”์‹œ์ง€ ๋ฐ”๋”” ๋‚ด์šฉ์˜ ํฌ๋งท์„ ๋‚˜ํƒ€๋‚ด๊ธฐ ์œ„ํ•œ ํŒŒ์ผ ํ™•์žฅ์ž๋ฅผ URI ์•ˆ์— ํฌํ•จ์‹œํ‚ค์ง€ ์•Š๋Š”๋‹ค.
    • Accept-header ๋ฅผ ์‚ฌ์šฉํ•˜์ž.
  7. ๋ฆฌ์†Œ์Šค ๊ฐ„์—๋Š” ์—ฐ๊ด€ ๊ด€๊ณ„๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ

    • /๋ฆฌ์†Œ์Šค๋ช…/๋ฆฌ์†Œ์Šค ID/๊ด€๊ณ„๊ฐ€ ์žˆ๋Š” ๋‹ค๋ฅธ ๋ฆฌ์†Œ์Šค๋ช…
    • GET : /users/{userid}/devices (์ผ๋ฐ˜์ ์œผ๋กœ ์†Œ์œ  โ€˜hasโ€™์˜ ๊ด€๊ณ„๋ฅผ ํ‘œํ˜„ํ•  ๋•Œ)
    • GET : /users/{userid}/likes/devices (๊ด€๊ณ„๋ช…์ด ์• ๋งคํ•˜๊ฑฐ๋‚˜ ๊ตฌ์ฒด์  ํ‘œํ˜„์ด ํ•„์š”ํ•  ๋•Œ)

3 RESTful

3-1 RESTful์ด๋ž€

  • REST ์›๋ฆฌ๋ฅผ ๋”ฐ๋ฅด๋Š” ์‹œ์Šคํ…œ์„ RESTful์ด๋ž€ ์šฉ์–ด๋กœ ์ง€์นญํ•œ๋‹ค๊ณ  ํ•œ๋‹ค. (๊ณต์‹์ ์ธ๊ฒƒ ์•„๋‹ˆ๋ผ๊ณ  ํ•œ๋‹ค.)
  • ์ฆ‰, REST API๋ฅผ ์ œ๊ณตํ•˜๋Š” ์›น ์„œ๋น„์Šค๋ฅผ RESTfulํ•˜๋‹ค๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค.

3-2 RESTful ํ•˜์ง€ ๋ชปํ•œ ๊ฒฝ์šฐ

  • CRUD ๊ธฐ๋Šฅ์„ ๋ชจ๋‘ POST๋กœ๋งŒ ์ฒ˜๋ฆฌํ•˜๋Š” API
  • route์— ๋ฆฌ์†Œ์Šค, id ์™ธ์˜ ์ •๋ณด๊ฐ€ ๋“ค์–ด๊ฐ€๋Š” ๊ฒฝ์šฐ

4 ์‚ฌ์šฉํ•˜๊ธฐ ์‰ฝ๊ณ  ์œ ์—ฐํ•œ REST API ์„ค๊ณ„ ๋ฐฉ๋ฒ•

์ฐธ๊ณ