Intro. RESTful API

๐Ÿ“Œ RESTful API : ๋‘ ์ปดํ“จํ„ฐ ์‹œ์Šคํ…œ์ด ์ธํ„ฐ๋„ท์„ ํ†ตํ•ด ์ •๋ณด๋ฅผ ์•ˆ์ „ํ•˜๊ฒŒ ๊ตํ™˜ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ์ธํ„ฐํŽ˜์ด์Šค

  • ์•ˆ์ „ํ•˜๊ณ  ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ์Œ

  • ํšจ์œจ์  ์†Œํ”„ํŠธ์›จ์–ด ํ†ต์‹ ํ‘œ์ค€ ์ค€์ˆ˜ โ†’ ์ •๋ณด๊ตํ™˜ ์ง€์›ํ•จ


1 API

๐Ÿ“Œ API

  • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ธํ„ฐํŽ˜์ด์Šค
  • ๋‹ค๋ฅธ ์†Œํ”„ํŠธ์›จ์–ด ์‹œ์Šคํ…œ๊ณผ ํ†ต์‹ ํ•˜๊ธฐ์œ„ํ•ด ๋”ฐ๋ผ์•ผํ•˜๋Š” ๊ทœ์น™์„ ์ •์˜ํ•จ
  • Client์™€ Web Resource ์‚ฌ์ด์˜ ๊ฒŒ์ดํŠธ์›จ์ด
๐Ÿ’ก ๊ฐœ๋ฐœ์ž : ๋‹ค๋ฅธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ฐฉ์‹์œผ๋กœ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ ํ†ต์‹ ํ•  ์ˆ˜ ์žˆ๊ฒŒ API๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ํ‘œ์‹œํ•จ

๐Ÿ”‘ ๊ทผ๋ฌด๊ธฐ๋ก์• ํ”Œ๋ฆฌ์ผ€์ด์…˜
	- ์ง์› ์ „์ฒด์ด๋ฆ„, ๋‚ ์งœ๋ฒ”์œ„๋ฅผ ์š”์ฒญํ•˜๋Š” API ํ‘œ์‹œ
    - ์š”์ฒญ API โ†’ ์ˆ˜์‹  โ†’ ํ•ด๋‹น resource ๋ฐ˜ํ™˜
    
	โžก๏ธ ์š”์ฒญ API : Client
    โžก๏ธ ์›น resource : ํ•ด๋‹น ๊ทผ๋ฌด๊ธฐ๋ก ๋ฐ์ดํ„ฐ

1๏ธโƒฃ Client

  • Web์—์„œ ์ •๋ณด(๋ฐ์ดํ„ฐ)์— ์•ก์„ธ์Šค ํ•˜๋ ค๋Š” ์‚ฌ์šฉ์ž

    • โ‘  API๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋Š” ์œ ์ €

    • โ‘ก ์†Œํ”„ํŠธ์›จ์–ด ์‹œ์Šคํ…œ

2๏ธโƒฃ Resource

  • ๋‹ค์–‘ํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์ œ๊ณตํ•˜๋Š” ์ •๋ณด

  • ๋ฐ์ดํ„ฐ์˜ ์œ ํ˜•์€ ๋‹ค์–‘ํ•จ

  • Client์—๊ฒŒ Resource๋ฅผ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ โ†’ ์„œ๋ฒ„

  • API ์‚ฌ์šฉ โ†’ Resource ๊ณต์œ , ๋ณด์•ˆ, ์ œ์–ด, ์ธ์ฆ โžก๏ธ ์›น์„œ๋น„์Šค ์ œ๊ณต

  • API๋Š” ํŠน์ • ๋‚ด๋ถ€ Resource์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๋Š” Client๋ฅผ ๊ฒฐ์ •ํ•˜๋Š”๋ฐ ๋„์›€์ด ๋จ


2 REST

๐Ÿ“Œ Representational State Transfer : API ์ž‘๋™๋ฐฉ์‹์— ๋Œ€ํ•ด ์กฐ๊ฑด์„ ๋ถ€๊ณผํ•˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด ์•„ํ‚คํ…์ณ

  • ์ธํ„ฐ๋„ท๊ณผ ๊ฐ™์€ ๋ณต์žกํ•œ ๋„คํŠธ์›Œํฌ์—์„œ ํ†ต์‹ ์„ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ์ง€์นจ์œผ๋กœ ๋งŒ๋“ค์–ด์กŒ์Œ

  • REST๊ธฐ๋ฐ˜ ์•„ํ‚คํ…์ณ โ†’ ๋Œ€๊ทœ๋ชจ ๊ณ ์„ฑ๋Šฅ ํ†ต์‹ ์„ ์•ˆ์ •์ ์œผ๋กœ ์ง€์›๊ฐ€๋Šฅ โœ…

  • ์‰ฝ๊ฒŒ ๊ตฌํ˜„ ๋ฐ ์ˆ˜์ • ๊ฐ€๋Šฅ โ†’ ์—ฌ๋Ÿฌ ํ”Œ๋žซํผ์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅ

1๏ธโƒฃ REST API์™€ RESTful API

์šฉ์–ด์˜๋ฏธ
REST APIREST ์•„ํ‚คํ…์ณ ์Šคํƒ€์ผ์„ ๋”ฐ๋ฅด๋Š” API
RESTful APIREST ์•„ํ‚คํ…์ณ๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ์›น์„œ๋น„์Šค
  • RESTful API๋ผ๋Š” ์šฉ์–ด๋Š” RESTful ์›น API๋ฅผ ๋‚˜ํƒ€๋ƒ„

  • ์œ„์˜ ๋‘ ์šฉ์–ด๋Š” ๊ฐ™์€ ์˜๋ฏธ๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅ

2๏ธโƒฃ REST ์•„ํ‚คํ…์ณ ์›์น™

๐Ÿ’ก ๊ท ์ผํ•œ ์ธํ„ฐํŽ˜์ด์Šค

  • ๋ชจ๋“  RESTful ์›น์„œ๋น„์Šค ๋””์ž์ธ์˜ ๊ธฐ๋ณธ

  • ์„œ๋ฒ„๊ฐ€ ํ‘œ์ค€ํ˜•์‹์œผ๋กœ ์ •๋ณด๋ฅผ ์ „์†กํ•œ๋‹ค๋Š” ์˜๋ฏธ๋ฅผ ๋‚˜ํƒ€๋ƒ„

  • ํ˜•์‹์€ ์„œ๋ฒ„ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ์žˆ๋Š” Resource ๋‚ด๋ถ€ํ‘œํ˜„๊ณผ ๋‹ค๋ฅผ ์ˆ˜ ์žˆ์Œ

    • ํ˜•์‹์ด ์ง€์ •๋œ Resource โ†’ ํ‘œํ˜„
    • (์„œ๋ฒ„๋Š” ๋ฐ์ดํ„ฐ๋ฅผ text๋กœ ์ €์žฅ, HTML ํ‘œํ˜„ ํ˜•์‹์œผ๋กœ ์ „์†ก๊ฐ€๋Šฅ)

๐Ÿ’ก ๋ฌด์ƒํƒœ

  • ์„œ๋ฒ„๊ฐ€ ์ด์ „์˜ Request์™€ ๋…๋ฆฝ์ ์œผ๋กœ Client ์š”์ฒญ์„ ์™„๋ฃŒํ•˜๋Š” ํ†ต์‹ ๋ฐฉ๋ฒ•

  • Client๋Š” ์ž„์˜์˜ ์ˆœ์„œ๋กœ Resource๋ฅผ Request ๊ฐ€๋Šฅ

  • Request โ†’ ๋ฌด์ƒํƒœ or ๋‹ค๋ฅธ Request์™€ ๋ถ„๋ฆฌ๋จ

๐Ÿ’ก ๊ณ„์ธตํ™”์‹œ์Šคํ…œ

  • Client์™€ ์„œ๋ฒ„ ์‚ฌ์ด, ๋‹ค๋ฅธ ์Šน์ธ๋œ ์ค‘๊ฐœ์ž โ†’ ์—ฐ๊ฒฐ๊ฐ€๋Šฅ

  • ์„œ๋ฒ„ โ†’ Request๋ฅผ ๋‹ค๋ฅธ ์„œ๋ฒ„๋กœ ๋ณด๋‚ผ ์ˆ˜ ์žˆ์Œ

  • Client Request โ†’ ๋ณด์•ˆ, ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜, ๋น„์ฆˆ๋‹ˆ์Šค๋กœ์ง ๋“ฑ ์—ฌ๋Ÿฌ๊ณ„์ธต์œผ๋กœ ์—ฌ๋Ÿฌ์„œ๋ฒ„์—์„œ ์‹คํ–‰๋˜๋„๋ก RESTful ์›น์„œ๋น„์Šค ์„ค๊ณ„๊ฐ€๋Šฅ

  • ํ•ด๋‹น ๊ณ„์ธต๋“ค์€ Client์—๊ฒŒ๋Š” ๋ณด์ด์ง€ ์•Š์Œ

๐Ÿ’ก ์บ์‹œ๊ฐ€๋Šฅ์„ฑ

  • ์„œ๋ฒ„์‘๋‹ต์‹œ๊ฐ„ ๊ฐœ์„ ์„ ์œ„ํ•ด Client ๋˜๋Š” ์ค‘๊ฐœ์ž โ†’ ์ผ๋ถ€ Response๋ฅผ ์ €์žฅํ•˜๋Š” ์บ์‹ฑ์„ ์ง€์›ํ•จ

  • Client๋Š” ์ฒซ๋ฒˆ์งธ Response ์ดํ›„ ์บ์‹ฑํ•˜๊ฑฐ๋‚˜ ์ €์žฅํ•œ ๋‹ค์Œ ์บ์‹œ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•จ

๐Ÿ’ก ์˜จ๋””๋งจ๋“œ์ฝ”๋“œ

  • ์„œ๋ฒ„ โ†’ ์†Œํ”„ํŠธ์›จ์–ด ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ฝ”๋“œ โžก๏ธ Client์—๊ฒŒ ์ „์†ก

  • Client ๊ธฐ๋Šฅ์„ ํ™•์žฅํ•˜๊ฑฐ๋‚˜ ์‚ฌ์šฉ์ž์ง€์ •์œผ๋กœ ํ•  ์ˆ˜ ์žˆ์Œ

  • ์›น์‚ฌ์ดํŠธ์— ๋“ฑ๋ก์–‘์‹ ์ž‘์„ฑ โ†’ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์ž˜๋ชป๋œ ์–‘์‹์„ ์ฆ‰์‹œ ๊ฐ•์กฐํ‘œ์‹œํ•จ


3 RESTful API ์žฅ์ 

1๏ธโƒฃ ํ™•์žฅ์„ฑ

  • REST API๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ์‹œ์Šคํ…œ โ†’ REST๊ฐ€ Client์™€ ์„œ๋ฒ„ ์ƒํ˜ธ์ž‘์šฉ์„ ์ตœ์ ํ™”ํ•จ
    โžก๏ธ ํšจ์œจ์ ์œผ๋กœ ํฌ๊ธฐ์กฐ์ • ๊ฐ€๋Šฅ โœ…

  • ์„ฑ๋Šฅ์ €ํ•˜ ์š”์ธ์ธ ํ†ต์‹ ๋ณ‘๋ชฉํ˜„์ƒ์„ ์ผ์œผํ‚ค์ง€ ์•Š์œผ๋ฉด์„œ ํ™•์žฅ์„ฑ์„ ์ง€์›ํ•จ

    • ๋ฌด์ƒํƒœ : ์„œ๋ฒ„๊ฐ€ ๊ณผ๊ฑฐ Client Request ์ •๋ณด๋ฅผ ์œ ์ง€ํ•  ํ•„์š”๊ฐ€ ์—†์Œ โ†’ ์„œ๋ฒ„๋กœ๋“œ ์ œ๊ฑฐํ•จ

    • ์บ์‹ฑ : ์ผ๋ถ€ Client์™€ ์„œ๋ฒ„ ์ƒํ˜ธ์ž‘์šฉ์„ ์ œ๊ฑฐํ•จ

2๏ธโƒฃ ์œ ์—ฐ์„ฑ

  • ์™„์ „ํ•œ Client์™€ ์„œ๋ฒ„์˜ ๋ถ„๋ฆฌ๋ฅผ ์ง€์›ํ•จ โญ๏ธ

  • ๋‹ค์–‘ํ•œ ์„œ๋ฒ„ ๊ตฌ์„ฑ์š”์†Œ ๋‹จ์ˆœํ™”, ๋ถ„๋ฆฌ ๊ฐ ๋ถ€๋ถ„์ด ๋…๋ฆฝ์ ์œผ๋กœ ๋ฐœ์ „ํ•  ์ˆ˜ ์žˆ์Œ

  • (์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋กœ์ง์„ ๋‹ค์‹œ ์ž‘์„ฑํ•˜์ง€ ์•Š๊ณ , ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ณ„์ธต์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Œ)

3๏ธโƒฃ ๋…๋ฆฝ์„ฑ

  • REST API๋Š” ์‚ฌ์šฉ๋˜๋Š” ๊ธฐ์ˆ ๊ณผ ๋…๋ฆฝ์ ์ž„

  • API ์„ค๊ณ„์— ์˜ํ•ญ โŒ โ†’ ๋‹ค์–‘ํ•œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋กœ Client ๋ฐ ์„œ๋ฒ„ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์Œ

  • ํ†ต์‹ ์— ์˜ํ–ฅ โŒ โ†’ ์–‘์ชฝ์˜ ๊ธฐ๋ณธ๊ธฐ์ˆ  ๋ณ€๊ฒฝ๊ฐ€๋Šฅ


4 RESTful API ์ž‘๋™๋ฐฉ์‹

  • RESTful API ๊ธฐ๋ณธ๊ธฐ๋Šฅ์€ ์ธํ„ฐ๋„ท ๋ธŒ๋ผ์šฐ์ง•๊ณผ ๋™์ผํ•จ

  • Client๋Š” Resource ํ•„์š”์‹œ ์„œ๋ฒ„์— ์ ‘์†ํ•จ

๐Ÿ“ REST API ํ˜ธ์ถœ ์ผ๋ฐ˜๋‹จ๊ณ„

	โ‘  Client โ†’ ์„œ๋ฒ„ ; Request ์ „์†ก
      (Client๋Š” API ๋ฌธ์„œ ์ฐธ์กฐํ•˜์—ฌ ์„œ๋ฒ„๊ฐ€ ์ดํ•ดํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์š”์ฒญํ˜•์‹์ง€์ •)
    
    โ‘ก ์„œ๋ฒ„ Client ์ธ์ฆ โ†’ Request ๊ถŒํ•œ ์žˆ๋Š”์ง€ ํ™•์ธ
    
    โ‘ข ์„œ๋ฒ„ Request ์ˆ˜์‹ ํ•˜๊ณ , ๋‚ด๋ถ€์ ์œผ๋กœ ์ฒ˜๋ฆฌ
    
    โ‘ฃ ์„œ๋ฒ„ โ†’ Client ; Response ๋ฐ˜ํ™˜
      (Request ์„ฑ๊ณต ์—ฌ๋ถ€ ํฌํ•จ๋˜์–ด์žˆ์Œ)
      (Response์— Request ์ •๋ณด๋„ ํฌํ•จ๋˜์–ด์žˆ์Œ)

5 API Client Request

1๏ธโƒฃ ๊ณ ์œ  Resource ์‹๋ณ„์ž

  • ์„œ๋ฒ„ ; ๊ณ ์œ ํ•œ Resource ์‹๋ณ„์ž โ†’ ๊ฐ Resource๋ฅผ ์‹๋ณ„ํ•จ

  • REST ์•„ํ‚คํ…์ณ ๊ธฐ๋ฐ˜ ์›น์„œ๋น„์Šค ์„œ๋ฒ„ โ†’ URL๋กœ Resource๋ฅผ ์‹๋ณ„ํ•จ

    • URL : Resource์— ๋Œ€ํ•œ ๊ฒฝ๋กœ๋ฅผ ์ง€์ •ํ•จ
    • URL : Client Request๋ฅผ ์„œ๋ฒ„์— ์ง€์ •ํ•จ

2๏ธโƒฃ ๋ฉ”์„œ๋“œ

  • HTTP๋ฅผ ์ด์šฉํ•œ RESTful API ๊ตฌํ˜„ ์‹œ ์‚ฌ์šฉ

  • HTTP ๋ฉ”์„œ๋“œ โ†’ Resource์— ์ˆ˜ํ–‰ํ•ด์•ผํ•˜๋Š” ์ž‘์—…์„ ์„œ๋ฒ„์— ์•Œ๋ ค์คŒ

๐Ÿ’ก GET ๋ฉ”์„œ๋“œ

  • Client โ†’ GET method โ†’ ์„œ๋ฒ„์˜ ์ง€์ •๋œ URL์— ์žˆ๋Š” Resource์— ์•ก์„ธ์Šคํ•จ

๐Ÿ’ก POST ๋ฉ”์„œ๋“œ

  • Client โ†’ POST method โ†’ ์„œ๋ฒ„์— ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•จ

  • Request + ๋ฐ์ดํ„ฐํ‘œํ˜„

  • ๋™์ผ POST Request ์—ฌ๋Ÿฌ ๋ฒˆ ์ „์†ก ์‹œ, ๋™์ผ Resource ์—ฌ๋Ÿฌ ๋ฒˆ ์ƒ์„ฑ์ฃผ์˜

๐Ÿ’ก PUT ๋ฉ”์„œ๋“œ

  • Client โ†’ PUT method โ†’ ์„œ๋ฒ„์˜ ๊ธฐ์กด Resource Update

  • PUT Request๋Š” ์—ฌ๋Ÿฌ ๋ฒˆ ์š”์ฒญํ•ด๋„, ๊ฒฐ๊ณผ๋Š” ๋™์ผํ•จ

๐Ÿ’ก DELETE ๋ฉ”์„œ๋“œ

  • Client โ†’ DELETE method โ†’ Resource ์ œ๊ฑฐ

  • ์„œ๋ฒ„ ์ƒํƒœ๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒƒ

  • Client์˜ ์ ์ ˆํ•œ ์ธ์ฆ์ด ์—†์œผ๋ฉด, DELETE Request๋Š” ์‹คํŒจํ•จ

3๏ธโƒฃ HTTP Header

  • Client์™€ ์„œ๋ฒ„ ๊ฐ„์— ๊ตํ™˜๋˜๋Š” ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ

  • Request, Response ํ˜•์‹ + Request ์ƒํƒœ ๋“ฑ์˜ ์ •๋ณด

๐Ÿ’ก ๋ฐ์ดํ„ฐ

  • REST API Request์—๋Š” ๋ฉ”์„œ๋“œ ์™ธ, HTTP ๋ฉ”์„œ๋“œ๊ฐ€ ์„ฑ๊ณต์ ์œผ๋กœ ์ž‘๋™ํ•˜๊ธฐ ์œ„ํ•œ ๋ฐ์ดํ„ฐ

๐Ÿ’ก ํŒŒ๋ผ๋ฏธํ„ฐ

  • RESTful API Request์—๋Š” ์ˆ˜ํ–‰ํ•ด์•ผ ํ•  ์ž‘์—…์— ๋Œ€ํ•œ ์ž์„ธํ•œ ์ •๋ณด๋ฅผ ์„œ๋ฒ„์— ์ œ๊ณต

6 RESTful API ์ธ์ฆ

๐Ÿ“Œ RESTful API ์ธ์ฆ : Response๋ฅผ ๋ณด๋‚ด๊ธฐ ์ „, Request ์ธ์ฆ์„ ํ•จ โ†’ ์‹ ๋ขฐ๊ตฌ์ถ•

1๏ธโƒฃ HTTP ์ธ์ฆ

๐Ÿ’ก ๊ธฐ๋ณธ์ธ์ฆ

  • Client โ†’ Request Header โžก๏ธ User์ด๋ฆ„ + ์•”ํ˜ธ

  • base64 ์ธ์ฝ”๋”ฉ ์‚ฌ์šฉ

    • 64์ž์˜ ์„ธํŠธ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๊ธฐ์ˆ 

๐Ÿ’ก ์ „๋‹ฌ์ž์ธ์ฆ

  • ์ „๋‹ฌ์ž(bearer)์ธ์ฆ : ํ† ํฐ์ „๋‹ฌ์ž์— ๋Œ€ํ•œ ์•ก์„ธ์Šค ์ œ์–ด๋ฅผ ์ œ๊ณตํ•˜๋Š” ํ”„๋กœ์„ธ์Šค

  • bearer token : ์„œ๋ฒ„๊ฐ€ ๋กœ๊ทธ์ธ Request์— ๋Œ€ํ•œ Response๋กœ ์ƒ์„ฑํ•˜๋Š” ์•”ํ˜ธํ™”๋œ ๋ฌธ์ž์—ด

  • Client โ†’ Request Header โžก๏ธ bearer token

2๏ธโƒฃ API ํ‚ค

  • ์„œ๋ฒ„ โ†’ ๊ณ ์œ ์ƒ์„ฑ๊ฐ’ โžก๏ธ ์ตœ์ดˆ Client์— ํ• ๋‹น

  • Client๋Š” Resource์— ์•ก์„ธ์Šค ํ•  ๋•Œ๋งˆ๋‹ค ๊ณ ์œ  API ํ‚ค๋ฅผ ์‚ฌ์šฉํ•ด ๋ณธ์ธ์„ ๊ฒ€์ฆํ•จ

  • ๋„คํŠธ์›Œํฌ ๋„๋‚œ์— ์ทจ์•ฝํ•จ

3๏ธโƒฃ OAuth

  • ๋ชจ๋“  ์‹œ์Šคํ…œ์— ๋Œ€ํ•ด ๋งค์šฐ ์•ˆ์ „ํ•œ ๋กœ๊ทธ์ธ ์•ก์„ธ์Šค

  • ์•”ํ˜ธ + token

  • ์„œ๋ฒ„๋Š” ๋จผ์ € ์•”ํ˜ธ๋ฅผ ์š”์ฒญํ•œ ๋’ค, ์ถ”๊ฐ€ token์„ ์š”์ฒญํ•จ

  • ํŠน์ • ๋ฒ”์œ„ ๋ฐ ์ˆ˜๋ช… โ†’ token ์žฌํ™•์ธ ๊ฐ€๋Šฅ


7 RESTful API ์„œ๋ฒ„ Response

1๏ธโƒฃ ์ƒํƒœํ‘œ์‹œ์ค„

  • Request ์„ฑ๊ณต ๋˜๋Š” ์‹คํŒจ๋ฅผ ์•Œ๋ฆฌ๋Š” 3์ž๋ฆฌ ์ƒํƒœ์ฝ”๋“œ

    • 2XX : ์„ฑ๊ณต
    • 4XX, 5XX : ์˜ค๋ฅ˜
    • 3XX : URL ๋ฆฌ๋””๋ ‰์…˜ (๋‹ค๋ฅธ URL๋กœ Client๋ฅผ ๋ณด๋‚ด๋Š” ๊ฒƒ)
๐Ÿ“ 200 : ์ผ๋ฐ˜ ์„ฑ๊ณต Response

๐Ÿ“ 201 : POST ๋ฉ”์„œ๋“œ ์„ฑ๊ณต Response

๐Ÿ“ 400 : ์„œ๋ฒ„๊ฐ€ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์—†๋Š” ์ž˜๋ชป๋œ Request

๐Ÿ“ 404 : Resource ์ฐพ์„ ์ˆ˜ ์—†์Œ

2๏ธโƒฃ ๋ฉ”์‹œ์ง€๋ณธ๋ฌธ

  • Response ๋ณธ๋ฌธ โ†’ Resource ํ‘œํ˜„์ด ํฌํ•จ๋จ

  • Request Header์— ํฌํ•จ๋œ ๋‚ด์šฉ์„ ๊ธฐ๋ฐ˜ โ†’ ํ‘œํ˜„ํ˜•์‹์„ ์„ ํƒํ•จ

    • XML : ์ผ๋ฐ˜ํ…์ŠคํŠธ (๋งˆํฌ์—…์–ธ์–ด)
    • JSON : ์ผ๋ฐ˜ํ…์ŠคํŠธ (Key-Value)
{"name" : "mallang", "age" : 22}

3๏ธโƒฃ Header

  • Response์— ๋Œ€ํ•œ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ

  • ์„œ๋ฒ„, ์ธ์ฝ”๋”ฉ, ๋‚ ์งœ, ์ฝ˜ํ…์ธ  ์œ ํ˜• ๋“ฑ

profile
๐ŸฑSunyeon-Jeong, mallang developer๐Ÿฐ

0๊ฐœ์˜ ๋Œ“๊ธ€