Skip to content

Latest commit

ย 

History

History
66 lines (28 loc) ยท 1.87 KB

REST API & Spring.md

File metadata and controls

66 lines (28 loc) ยท 1.87 KB

REST API๋ž€?

  • Representational State Transfer
  • ํ•˜๋‚˜์˜ URI๋Š” ํ•˜๋‚˜์˜ ๊ณ ์œ ํ•œ Resource๋ฅผ ๋Œ€ํ‘œํ•˜๋„๋ก ์„ค๊ณ„๋œ๋‹ค๋Š” ๊ฐœ๋….

๊ตฌ์„ฑ

  • ์ž์›(Resource)- URI
  • ํ–‰์œ„(Verb)- HTTP method
  • ํ‘œํ˜„(Representations)

๋””์ž์ธ ๊ฐ€์ด๋“œ

  • URI๋Š” ์ •๋ณด์˜ ์ž์›์„ ํ‘œํ˜„ํ•ด์•ผ ํ•œ๋‹ค.
    • ์ž์›์„ ๋‚˜ํƒ€๋‚ด๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋ช…์‚ฌ(noun)๋ฅผ ์‚ฌ์šฉํ•ด์•ผํ•˜๋ฉฐ, ํ‘œํ˜„ํ•˜๊ณ ์ž ํ•˜๋Š” ์ž์›์ด ๋ณต์ˆ˜ํ˜•์ผ ๊ฒฝ์šฐ์—๋Š” ์ด๊ฒƒ์„ ๋ช…์‹œํ•ด์•ผ ํ•œ๋‹ค.
  • ์ž์›์— ๋Œ€ํ•œ ํ–‰์œ„๋Š” Http method(GET, POST, PUT, DELETE)๋กœ ํ‘œํ˜„ํ•œ๋‹ค.

Spring & REST API

  • spring MVCํŒจํ„ด์˜ ๊ฒฝ์šฐ ์„œ๋ฒ„์—์„œ html์„ ๊ทธ๋ ค์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๋‚ด๋ณด๋‚ด๋Š”๋ฐ, REST API ์•„ํ‚คํ…์ฒ˜ ์Šคํƒ€์ผ์€ ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„๊ฐ€ ๋ถ„๋ฆฌ๋˜๋ฉฐ ๋ฐ์ดํ„ฐ๋Š” HTTP ํ”„๋กœํ† ์ฝœ ์œ„์—์„œ ์ฃผ๊ณ ๋ฐ›๋Š” ๋ฐฉ์‹์ด๋‹ค.

img

spring์—์„œ controller์— @ResponseBody๊ฐ€ ๋ถ™์œผ๋ฉด spring์˜ viewResolver๋Œ€์‹ ์— HTTP Message Converter์— ์˜ํ•ด view๊ฐ€ ์•„๋‹Œ, data ์ž์ฒด๋ฅผ ๋ฆฌํ„ดํ•˜๊ฒŒ ๋œ๋‹ค.

HttpMessageConverter์—๋Š” ์—ฌ๋Ÿฌ Converter๊ฐ€ ๋“ฑ๋ก๋˜์–ด์žˆ๊ณ , ๋ฐ˜ํ™˜ํ•ด์•ผํ•˜๋Š” ๋ฐ์ดํ„ฐ์˜ ์ข…๋ฅ˜์— ๋”ฐ๋ผ ์‚ฌ์šฉ๋˜๋Š” converter๊ฐ€ ๋‹ฌ๋ผ์ง„๋‹ค.

img

spring4๋ถ€ํ„ฐ ์ œ๊ณต๋˜๋Š” @RestController

  • class level์— ์„ ์–ธํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ,

  • @RestController๊ฐ€ ๋ถ™์€ ์ปจํŠธ๋กค๋Ÿฌ์˜ ๋ชจ๋“  ๋ฉ”์„œ๋“œ๋Š” ์ž๋™์œผ๋กœ @ResponseBody๊ฐ€ ์ ์šฉ๋œ๋‹ค.

    img


์ฐธ๊ณ ์ž๋ฃŒ