SPRING
2017.04.19 / 09:50

REST API Á¦´ë·Î ¾Ë°í »ç¿ëÇϱâ

1pips
Ãßõ ¼ö 151

REST API Á¦´ë·Î ¾Ë°í »ç¿ëÇϱâ

¸ñÂ÷

  1. REST APIÀÇ Åº»ý
  2. REST ±¸¼º
  3. REST ÀÇ Æ¯Â¡
  4. REST API µðÀÚÀÎ °¡À̵å
  5. HTTP ÀÀ´ä »óÅ ÄÚµå

±×¸²1.png

¾î´À ³¯ ¶á±Ý¾øÀÌ ´ëÇб³ Ä£±¸¿¡°Ô ÀüÈ­°¡ ¿Ô½À´Ï´Ù. ±×·¯´õ´Ï ¡®¾ß, REST API°¡ Á¤È®È÷ ¹¹ ¾î¶² °Å¾ß? ÇÏ´Â Áú¹®¿¡ °¡½¿¿¡ ºñ¼ö°¡ ³¯¾Æ¿Í ²ÈÈù µíÇÑ ´À³¦À» ¹Þ¾Ò½À´Ï´Ù. ¸çÄ¥ Àü Ä«ÅåÀ¸·Î ¿äÁò º¸Åë À¥¼­ºñ½ºµéÀº ¡®REST APIÇüÅ·Π¼­ºñ½º¸¦ Á¦°øÇÑ´Ù¡¯°í ¾Æ´Â ôÀ» Á¶±Ý Çß´ø ±â¾ïÀÌ ¸Ó¸´¼ÓÀ» ºü¸£°Ô ½ºÃÄ Áö³ª°¬°í ±× ¼ø°£ ´ëÃæ ¾ó¹ö¹«¸®¸ç ¡®¾Æ, ±×°Å RESTÇÏ°Ô Å¬¶óÀ̾ðÆ®¶û ¼­¹ö°£¿¡ µ¥ÀÌÅ͸¦ ÁÖ°í ¹Þ´Â ¹æ½Ä¡¯À» ¸»ÇÑ´Ù¸ç ¾ó··¶×¶¥ ¸¶¹«¸® Áö¾ú´ø ±â¾ïÀÌ ³³´Ï´Ù. ½ÇÁ¦·Î REST APIÀÇ ¼­ºñ½º¸¦ Á÷Á¢ °³¹ßµµ Çغ¸°í »ç¿ëµµ Çغôµ¥µµ ¸·»ó ¼³¸íÀ» ÇÏÀÚ´Ï ¾î·Á¿òÀ» °Þ¾ú´ø ÀûÀÌ ÀÖÀ¸¼ÌÀ» ÅÙµ¥¿ä. ±×·¡¼­ À̹ø¿¡ REST API¿¡ ´ëÇØ Á¤¸®ÇÏ°Ô µÇ¾ú½À´Ï´Ù. ±âº»ÀûÀÎ REST API¿¡ ´ëÇÑ ³»¿ë ¿Ü¿¡µµ REST API¸¦ ¼³°èÇÏ½Ç ¶§ Âü°íÇØ¾ß ÇÒ ¸î °¡Áö TIPµé¿¡ ´ëÇØ °øÀ¯Çغ¸µµ·Ï ÇÏ°Ú½À´Ï´Ù.

1. REST APIÀÇ Åº»ý

REST´Â Representational State Transfer¶ó´Â ¿ë¾îÀÇ ¾àÀڷμ­ 2000³âµµ¿¡ ·ÎÀÌ Çʵù (Roy Fielding)ÀÇ ¹Ú»çÇÐÀ§ ³í¹®¿¡¼­ ÃÖÃÊ·Î ¼Ò°³µÇ¾ú½À´Ï´Ù. ·ÎÀÌ ÇʵùÀº HTTPÀÇ ÁÖ¿ä ÀúÀÚ Áß ÇÑ »ç¶÷À¸·Î ±× ´ç½Ã À¥(HTTP) ¼³°èÀÇ ¿ì¼ö¼º¿¡ ºñÇØ Á¦´ë·Î »ç¿ëµÇ¾îÁöÁö ¸øÇÏ´Â ¸ð½À¿¡ ¾ÈŸ±î¿öÇϸç À¥ÀÇ ÀåÁ¡À» ÃÖ´ëÇÑ È°¿ëÇÒ ¼ö ÀÖ´Â ¾ÆÅ°ÅØó·Î½á REST¸¦ ¹ßÇ¥Çß´Ù°í ÇÕ´Ï´Ù.

2. REST ±¸¼º

½±°Ô ¸»ÇØ REST API´Â ´ÙÀ½ÀÇ ±¸¼ºÀ¸·Î ÀÌ·ç¾îÁ®ÀÖ½À´Ï´Ù. ÀÚ¼¼ÇÑ ³»¿ëÀº ¹Ø¿¡¼­ ¼³¸íÇϵµ·Ï ÇÏ°Ú½À´Ï´Ù.

  • ÀÚ¿ø(RESOURCE) - URI
  • ÇàÀ§(Verb) - HTTP METHOD
  • Ç¥Çö(Representations)

3. REST ÀÇ Æ¯Â¡

1) Uniform (À¯´ÏÆû ÀÎÅÍÆäÀ̽º)

Uniform Interface´Â URI·Î ÁöÁ¤ÇÑ ¸®¼Ò½º¿¡ ´ëÇÑ Á¶ÀÛÀ» ÅëÀϵǰí ÇÑÁ¤ÀûÀÎ ÀÎÅÍÆäÀ̽º·Î ¼öÇàÇÏ´Â ¾ÆÅ°ÅØó ½ºÅ¸ÀÏÀ» ¸»ÇÕ´Ï´Ù.

2) Stateless (¹«»óżº)

REST´Â ¹«»óżº ¼º°ÝÀ» °®½À´Ï´Ù. ´Ù½Ã ¸»ÇØ ÀÛ¾÷À» À§ÇÑ »óÅÂÁ¤º¸¸¦ µû·Î ÀúÀåÇÏ°í °ü¸®ÇÏÁö ¾Ê½À´Ï´Ù. ¼¼¼Ç Á¤º¸³ª ÄíÅ°Á¤º¸¸¦ º°µµ·Î ÀúÀåÇÏ°í °ü¸®ÇÏÁö ¾Ê±â ¶§¹®¿¡ API ¼­¹ö´Â µé¾î¿À´Â ¿äû¸¸À» ´Ü¼øÈ÷ ó¸®ÇÏ¸é µË´Ï´Ù. ¶§¹®¿¡ ¼­ºñ½ºÀÇ ÀÚÀ¯µµ°¡ ³ô¾ÆÁö°í ¼­¹ö¿¡¼­ ºÒÇÊ¿äÇÑ Á¤º¸¸¦ °ü¸®ÇÏÁö ¾ÊÀ½À¸·Î½á ±¸ÇöÀÌ ´Ü¼øÇØÁý´Ï´Ù.

3) Cacheable (ij½Ã °¡´É)

RESTÀÇ °¡Àå Å« Ư¡ Áß Çϳª´Â HTTP¶ó´Â ±âÁ¸ À¥Ç¥ÁØÀ» ±×´ë·Î »ç¿ëÇϱ⠶§¹®¿¡, À¥¿¡¼­ »ç¿ëÇÏ´Â ±âÁ¸ ÀÎÇÁ¶ó¸¦ ±×´ë·Î È°¿ëÀÌ °¡´ÉÇÕ´Ï´Ù. µû¶ó¼­ HTTP°¡ °¡Áø ij½Ì ±â´ÉÀÌ Àû¿ë °¡´ÉÇÕ´Ï´Ù. HTTP ÇÁ·ÎÅäÄÝ Ç¥ÁØ¿¡¼­ »ç¿ëÇÏ´Â Last-Modifiedű׳ª E-Tag¸¦ ÀÌ¿ëÇϸé ij½Ì ±¸ÇöÀÌ °¡´ÉÇÕ´Ï´Ù.

4) Self-descriptiveness (ÀÚü Ç¥Çö ±¸Á¶)

RESTÀÇ ¶Ç ´Ù¸¥ Å« Ư¡ Áß Çϳª´Â REST API ¸Þ½ÃÁö¸¸ º¸°íµµ À̸¦ ½±°Ô ÀÌÇØ ÇÒ ¼ö ÀÖ´Â ÀÚü Ç¥Çö ±¸Á¶·Î µÇ¾î ÀÖ´Ù´Â °ÍÀÔ´Ï´Ù.

5) Client - Server ±¸Á¶

REST ¼­¹ö´Â API Á¦°ø, Ŭ¶óÀ̾ðÆ®´Â »ç¿ëÀÚ ÀÎÁõÀ̳ª ÄÁÅؽºÆ®(¼¼¼Ç, ·Î±×ÀÎ Á¤º¸)µîÀ» Á÷Á¢ °ü¸®ÇÏ´Â ±¸Á¶·Î °¢°¢ÀÇ ¿ªÇÒÀÌ È®½ÇÈ÷ ±¸ºÐµÇ±â ¶§¹®¿¡ Ŭ¶óÀ̾ðÆ®¿Í ¼­¹ö¿¡¼­ °³¹ßÇØ¾ß ÇÒ ³»¿ëÀÌ ¸íÈ®ÇØÁö°í ¼­·Î°£ ÀÇÁ¸¼ºÀÌ ÁÙ¾îµé°Ô µË´Ï´Ù.

6) °èÃþÇü ±¸Á¶

REST ¼­¹ö´Â ´ÙÁß °èÃþÀ¸·Î ±¸¼ºµÉ ¼ö ÀÖÀ¸¸ç º¸¾È, ·Îµå ¹ë·±½Ì, ¾Ïȣȭ °èÃþÀ» Ãß°¡ÇØ ±¸Á¶»óÀÇ À¯¿¬¼ºÀ» µÑ ¼ö ÀÖ°í PROXY, °ÔÀÌÆ®¿þÀÌ °°Àº ³×Æ®¿öÅ© ±â¹ÝÀÇ Áß°£¸Åü¸¦ »ç¿ëÇÒ ¼ö ÀÖ°Ô ÇÕ´Ï´Ù.

4. REST API µðÀÚÀÎ °¡À̵å

REST API ¼³°è ½Ã °¡Àå Áß¿äÇÑ Ç׸ñÀº ´ÙÀ½ÀÇ 2°¡Áö·Î ¿ä¾àÇÒ ¼ö ÀÖ½À´Ï´Ù.

ù ¹ø°, URI´Â Á¤º¸ÀÇ ÀÚ¿øÀ» Ç¥ÇöÇØ¾ß ÇÑ´Ù.
µÎ ¹ø°, ÀÚ¿ø¿¡ ´ëÇÑ ÇàÀ§´Â HTTP Method(GET, POST, PUT, DELETE)·Î Ç¥ÇöÇÑ´Ù.

´Ù¸¥ °ÍÀº ´Ù Àؾ À§ ³»¿ëÀº ²À ±â¾ïÇÏ½Ã±æ ¹Ù¶ø´Ï´Ù.

4-1. REST API Á᫐ ±ÔÄ¢


1) URI´Â Á¤º¸ÀÇ ÀÚ¿øÀ» Ç¥ÇöÇØ¾ß ÇÑ´Ù. (¸®¼Ò½º¸íÀº µ¿»çº¸´Ù´Â ¸í»ç¸¦ »ç¿ë)

    GET /members/delete/1

À§¿Í °°Àº ¹æ½ÄÀº REST¸¦ Á¦´ë·Î Àû¿ëÇÏÁö ¾ÊÀº URIÀÔ´Ï´Ù. URI´Â ÀÚ¿øÀ» Ç¥ÇöÇϴµ¥ ÁßÁ¡À» µÎ¾î¾ß ÇÕ´Ï´Ù. delete¿Í °°Àº ÇàÀ§¿¡ ´ëÇÑ Ç¥ÇöÀÌ µé¾î°¡¼­´Â ¾ÈµË´Ï´Ù.

2) ÀÚ¿ø¿¡ ´ëÇÑ ÇàÀ§´Â HTTP Method(GET, POST, PUT, DELETE µî)·Î Ç¥Çö

À§ÀÇ À߸ø µÈ URI¸¦ HTTP Method¸¦ ÅëÇØ ¼öÁ¤ÇØ º¸¸é

    DELETE /members/1

À¸·Î ¼öÁ¤ÇÒ ¼ö ÀÖ°Ú½À´Ï´Ù.
ȸ¿øÁ¤º¸¸¦ °¡Á®¿Ã ¶§´Â GET, ȸ¿ø Ãß°¡ ½ÃÀÇ ÇàÀ§¸¦ Ç¥ÇöÇÏ°íÀÚ ÇÒ ¶§´Â POST METHOD¸¦ »ç¿ëÇÏ¿© Ç¥ÇöÇÕ´Ï´Ù.

ȸ¿øÁ¤º¸¸¦ °¡Á®¿À´Â URI

    GET /members/show/1     (x)
    GET /members/1          (o)

ȸ¿øÀ» Ãß°¡ÇÒ ¶§

    GET /members/insert/2 (x)  - GET ¸Þ¼­µå´Â ¸®¼Ò½º »ý¼º¿¡ ¸ÂÁö ¾Ê½À´Ï´Ù.
    POST /members/2       (o)

[Âü°í]HTTP METHODÀÇ ¾Ë¸ÂÀº ¿ªÇÒ 
POST, GET, PUT, DELETE ÀÌ 4°¡ÁöÀÇ Method¸¦ °¡Áö°í CRUD¸¦ ÇÒ ¼ö ÀÖ½À´Ï´Ù.

METHOD¿ªÇÒ
POSTPOST¸¦ ÅëÇØ ÇØ´ç URI¸¦ ¿äûÇÏ¸é ¸®¼Ò½º¸¦ »ý¼ºÇÕ´Ï´Ù.
GETGET¸¦ ÅëÇØ ÇØ´ç ¸®¼Ò½º¸¦ Á¶È¸ÇÕ´Ï´Ù. ¸®¼Ò½º¸¦ Á¶È¸ÇÏ°í ÇØ´ç µµÅ¥¸ÕÆ®¿¡ ´ëÇÑ ÀÚ¼¼ÇÑ Á¤º¸¸¦ °¡Á®¿Â´Ù.
PUTPUT¸¦ ÅëÇØ ÇØ´ç ¸®¼Ò½º¸¦ ¼öÁ¤ÇÕ´Ï´Ù.
DELETEDELETE¸¦ ÅëÇØ ¸®¼Ò½º¸¦ »èÁ¦ÇÕ´Ï´Ù.

´ÙÀ½°ú °°Àº ½ÄÀ¸·Î URI´Â ÀÚ¿øÀ» Ç¥ÇöÇÏ´Â µ¥¿¡ ÁýÁßÇÏ°í ÇàÀ§¿¡ ´ëÇÑ Á¤ÀÇ´Â HTTP METHOD¸¦ ÅëÇØ ÇÏ´Â °ÍÀÌ RESTÇÑ API¸¦ ¼³°èÇÏ´Â Á᫐ ±ÔÄ¢ÀÔ´Ï´Ù.

4-2. URI ¼³°è ½Ã ÁÖÀÇÇÒ Á¡


1) ½½·¡½Ã ±¸ºÐÀÚ(/)´Â °èÃþ °ü°è¸¦ ³ªÅ¸³»´Â µ¥ »ç¿ë

    http://restapi.example.com/houses/apartments
    http://restapi.example.com/animals/mammals/whales

2) URI ¸¶Áö¸· ¹®ÀÚ·Î ½½·¡½Ã(/)¸¦ Æ÷ÇÔÇÏÁö ¾Ê´Â´Ù.

URI¿¡ Æ÷ÇԵǴ ¸ðµç ±ÛÀÚ´Â ¸®¼Ò½ºÀÇ À¯ÀÏÇÑ ½Äº°ÀÚ·Î »ç¿ëµÇ¾î¾ß Çϸç URI°¡ ´Ù¸£´Ù´Â °ÍÀº ¸®¼Ò½º°¡ ´Ù¸£´Ù´Â °ÍÀÌ°í, ¿ªÀ¸·Î ¸®¼Ò½º°¡ ´Ù¸£¸é URIµµ ´Þ¶óÁ®¾ß ÇÕ´Ï´Ù. REST API´Â ºÐ¸íÇÑ URI¸¦ ¸¸µé¾î Åë½ÅÀ» ÇØ¾ß Çϱ⠶§¹®¿¡ È¥µ¿À» ÁÖÁö ¾Êµµ·Ï URI °æ·ÎÀÇ ¸¶Áö¸·¿¡´Â ½½·¡½Ã(/)¸¦ »ç¿ëÇÏÁö ¾Ê½À´Ï´Ù.

    http://restapi.example.com/houses/apartments/ (X)
    http://restapi.example.com/houses/apartments  (0)

3) ÇÏÀÌÇÂ(-)Àº URI °¡µ¶¼ºÀ» ³ôÀ̴µ¥ »ç¿ë

URI¸¦ ½±°Ô Àаí Çؼ®Çϱâ À§ÇØ, ºÒ°¡ÇÇÇÏ°Ô ±ä URI°æ·Î¸¦ »ç¿ëÇÏ°Ô µÈ´Ù¸é ÇÏÀÌÇÂÀ» »ç¿ëÇØ °¡µ¶¼ºÀ» ³ôÀÏ ¼ö ÀÖ½À´Ï´Ù.

4) ¹ØÁÙ(_)Àº URI¿¡ »ç¿ëÇÏÁö ¾Ê´Â´Ù.

±Û²Ã¿¡ µû¶ó ´Ù¸£±ä ÇÏÁö¸¸ ¹ØÁÙÀº º¸±â ¾î·Æ°Å³ª ¹ØÁÙ ¶§¹®¿¡ ¹®ÀÚ°¡ °¡·ÁÁö±âµµ ÇÕ´Ï´Ù. ÀÌ·± ¹®Á¦¸¦ ÇÇÇϱâ À§ÇØ ¹ØÁÙ ´ë½Å ÇÏÀÌÇÂ(-)À» »ç¿ëÇÏ´Â °ÍÀÌ ÁÁ½À´Ï´Ù.(°¡µ¶¼º)

5) URI °æ·Î¿¡´Â ¼Ò¹®ÀÚ°¡ ÀûÇÕÇÏ´Ù.

URI °æ·Î¿¡ ´ë¹®ÀÚ »ç¿ëÀº ÇÇÇϵµ·Ï ÇØ¾ß ÇÕ´Ï´Ù. ´ë¼Ò¹®ÀÚ¿¡ µû¶ó ´Ù¸¥ ¸®¼Ò½º·Î ÀνÄÇÏ°Ô µÇ±â ¶§¹®ÀÔ´Ï´Ù. RFC 3986(URI ¹®¹ý Çü½Ä)Àº URI ½ºÅ°¸¶¿Í È£½ºÆ®¸¦ Á¦¿ÜÇÏ°í´Â ´ë¼Ò¹®ÀÚ¸¦ ±¸º°Çϵµ·Ï ±ÔÁ¤Çϱ⠶§¹®ÀÌÁö¿ä.

    RFC 3986 is the URI (Unified Resource Identifier) Syntax document

6) ÆÄÀÏ È®ÀåÀÚ´Â URI¿¡ Æ÷ÇÔ½ÃÅ°Áö ¾Ê´Â´Ù.

    http://restapi.example.com/members/soccer/345/photo.jpg (X)

REST API¿¡¼­´Â ¸Þ½ÃÁö ¹Ùµð ³»¿ëÀÇ Æ÷¸ËÀ» ³ªÅ¸³»±â À§ÇÑ ÆÄÀÏ È®ÀåÀÚ¸¦ URI ¾È¿¡ Æ÷ÇÔ½ÃÅ°Áö ¾Ê½À´Ï´Ù. Accept header¸¦ »ç¿ëÇϵµ·Ï ÇսôÙ.

    GET / members/soccer/345/photo HTTP/1.1 Host: restapi.example.com Accept: image/jpg

4-3. ¸®¼Ò½º °£ÀÇ °ü°è¸¦ Ç¥ÇöÇÏ´Â ¹æ¹ý


REST ¸®¼Ò½º °£¿¡´Â ¿¬°ü °ü°è°¡ ÀÖÀ» ¼ö ÀÖ°í, ÀÌ·± °æ¿ì ´ÙÀ½°ú °°Àº Ç¥Çö¹æ¹ýÀ¸·Î »ç¿ëÇÕ´Ï´Ù.

    /¸®¼Ò½º¸í/¸®¼Ò½º ID/°ü°è°¡ ÀÖ´Â ´Ù¸¥ ¸®¼Ò½º¸í

    ex)    GET : /users/{userid}/devices (ÀϹÝÀûÀ¸·Î ¼ÒÀ¯ ¡®has¡¯ÀÇ °ü°è¸¦ Ç¥ÇöÇÒ ¶§)

¸¸¾à¿¡ °ü°è¸íÀÌ º¹ÀâÇÏ´Ù¸é À̸¦ ¼­ºê ¸®¼Ò½º¿¡ ¸í½ÃÀûÀ¸·Î Ç¥ÇöÇÏ´Â ¹æ¹ýÀÌ ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î »ç¿ëÀÚ°¡ ¡®ÁÁ¾ÆÇϴ¡¯ µð¹ÙÀ̽º ¸ñ·ÏÀ» Ç¥ÇöÇØ¾ß ÇÒ °æ¿ì ´ÙÀ½°ú °°Àº ÇüÅ·Π»ç¿ëµÉ ¼ö ÀÖ½À´Ï´Ù.

    GET : /users/{userid}/likes/devices (°ü°è¸íÀÌ ¾Ö¸ÅÇϰųª ±¸Ã¼Àû Ç¥ÇöÀÌ ÇÊ¿äÇÒ ¶§)

4-4. ÀÚ¿øÀ» Ç¥ÇöÇÏ´Â Colllection°ú Document


Collection°ú Document¿¡ ´ëÇØ ¾Ë¸é URI ¼³°è°¡ ÇÑ Ãþ ´õ ½¬¿öÁý´Ï´Ù. DOCUMENT´Â ´Ü¼øÈ÷ ¹®¼­·Î ÀÌÇØÇصµ µÇ°í, ÇÑ °´Ã¼¶ó°í ÀÌÇØÇϼŵµ µÉ °Í °°½À´Ï´Ù. Ä÷º¼ÇÀº ¹®¼­µéÀÇ ÁýÇÕ, °´Ã¼µéÀÇ ÁýÇÕÀ̶ó°í »ý°¢ÇϽøé ÀÌÇØÇϽôµ¥ Á»´õ ÆíÇÏ½Ç °Í °°½À´Ï´Ù. Ä÷º¼Ç°ú µµÅ¥¸ÕÆ®´Â ¸ðµÎ ¸®¼Ò½º¶ó°í Ç¥ÇöÇÒ ¼ö ÀÖÀ¸¸ç URI¿¡ Ç¥ÇöµË´Ï´Ù. ¿¹¸¦ »ìÆ캸µµ·Ï ÇÏ°Ú½À´Ï´Ù.

    http:// restapi.example.com/sports/soccer

À§ URI¸¦ º¸½Ã¸é sports¶ó´Â Ä÷º¼Ç°ú soccer¶ó´Â µµÅ¥¸ÕÆ®·Î Ç¥ÇöµÇ°í ÀÖ´Ù°í »ý°¢ÇÏ¸é µË´Ï´Ù. Á» ´õ ¿¹¸¦ µé¾îº¸ÀÚ¸é

    http:// restapi.example.com/sports/soccer/players/13

sports, players Ä÷º¼Ç°ú soccer, 13(13¹øÀÎ ¼±¼ö)¸¦ ÀǹÌÇÏ´Â µµÅ¥¸ÕÆ®·Î URI°¡ ÀÌ·ç¾îÁö°Ô µË´Ï´Ù. ¿©±â¼­ Áß¿äÇÑ Á¡Àº Ä÷º¼ÇÀº º¹¼ö·Î »ç¿ëÇÏ°í ÀÖ´Ù´Â Á¡ÀÔ´Ï´Ù. Á» ´õ Á÷°üÀûÀÎ REST API¸¦ À§Çؼ­´Â Ä÷º¼Ç°ú µµÅ¥¸ÕÆ®¸¦ »ç¿ëÇÒ ¶§ ´Ü¼ö º¹¼öµµ ÁöÄÑÁشٸé Á» ´õ ÀÌÇØÇϱ⠽¬¿î URI¸¦ ¼³°èÇÒ ¼ö ÀÖ½À´Ï´Ù.

5. HTTP ÀÀ´ä »óÅ ÄÚµå

¸¶Áö¸·À¸·Î ÀÀ´ä »óÅÂÄڵ带 °£´ÜÈ÷ »ìÆ캸µµ·Ï ÇÏ°Ú½À´Ï´Ù. Àß ¼³°èµÈ REST API´Â URI¸¸ Àß ¼³°èµÈ °ÍÀÌ ¾Æ´Ñ ±× ¸®¼Ò½º¿¡ ´ëÇÑ ÀÀ´äÀ» Àß ³»¾îÁÖ´Â °Í±îÁö Æ÷ÇԵǾî¾ß ÇÕ´Ï´Ù. Á¤È®ÇÑ ÀÀ´äÀÇ »óÅÂÄڵ常À¸·Îµµ ¸¹Àº Á¤º¸¸¦ Àü´ÞÇÒ ¼ö°¡ Àֱ⠶§¹®¿¡ ÀÀ´äÀÇ »óÅÂÄÚµå °ªÀ» ¸íÈ®È÷ µ¹·ÁÁÖ´Â °ÍÀº »ý°¢º¸´Ù Áß¿äÇÑ ÀÏÀÌ µÉ ¼öµµ ÀÖ½À´Ï´Ù. Ȥ½Ã 200À̳ª 4XX°ü·Ã ƯÁ¤ ÄÚµå Á¤µµ¸¸ »ç¿ëÇÏ°í ÀÖ´Ù¸é ó¸® »óÅ¿¡ ´ëÇÑ Á» ´õ ¸íÈ®ÇÑ »óÅÂÄÚµå °ªÀ» »ç¿ëÇÒ ¼ö Àֱ⸦ ±ÇÀåÇÏ´Â ¹ÙÀÔ´Ï´Ù.
»óÅÂÄڵ忡 ´ëÇؼ­´Â ¸î °¡Áö¸¸ Á¤¸®Çϵµ·Ï ÇÏ°Ú½À´Ï´Ù.

»óÅÂÄÚµå
200Ŭ¶óÀ̾ðÆ®ÀÇ ¿äûÀ» Á¤»óÀûÀ¸·Î ¼öÇàÇÔ
201Ŭ¶óÀ̾ðÆ®°¡ ¾î¶°ÇÑ ¸®¼Ò½º »ý¼ºÀ» ¿äû, ÇØ´ç ¸®¼Ò½º°¡ ¼º°øÀûÀ¸·Î »ý¼ºµÊ(POST¸¦ ÅëÇÑ ¸®¼Ò½º »ý¼º ÀÛ¾÷ ½Ã)
»óÅÂÄÚµå
400Ŭ¶óÀ̾ðÆ®ÀÇ ¿äûÀÌ ºÎÀûÀý ÇÒ °æ¿ì »ç¿ëÇÏ´Â ÀÀ´ä ÄÚµå
401Ŭ¶óÀ̾ðÆ®°¡ ÀÎÁõµÇÁö ¾ÊÀº »óÅ¿¡¼­ º¸È£µÈ ¸®¼Ò½º¸¦ ¿äûÇßÀ» ¶§ »ç¿ëÇÏ´Â ÀÀ´ä ÄÚµå
(·Î±×ÀÎ ÇÏÁö ¾ÊÀº À¯Àú°¡ ·Î±×ÀÎ ÇßÀ» ¶§, ¿äû °¡´ÉÇÑ ¸®¼Ò½º¸¦ ¿äûÇßÀ» ¶§)
403À¯Àú ÀÎÁõ»óÅÂ¿Í °ü°è ¾øÀÌ ÀÀ´äÇÏ°í ½ÍÁö ¾ÊÀº ¸®¼Ò½º¸¦ Ŭ¶óÀ̾ðÆ®°¡ ¿äûÇßÀ» ¶§ »ç¿ëÇÏ´Â ÀÀ´ä ÄÚµå
(403 º¸´Ù´Â 400À̳ª 404¸¦ »ç¿ëÇÒ °ÍÀ» ±Ç°í. 403 ÀÚü°¡ ¸®¼Ò½º°¡ Á¸ÀçÇÑ´Ù´Â ¶æÀ̱⠶§¹®¿¡)
405Ŭ¶óÀ̾ðÆ®°¡ ¿äûÇÑ ¸®¼Ò½º¿¡¼­´Â »ç¿ë ºÒ°¡´ÉÇÑ Method¸¦ ÀÌ¿ëÇßÀ» °æ¿ì »ç¿ëÇÏ´Â ÀÀ´ä ÄÚµå
»óÅÂÄÚµå
301Ŭ¶óÀ̾ðÆ®°¡ ¿äûÇÑ ¸®¼Ò½º¿¡ ´ëÇÑ URI°¡ º¯°æ µÇ¾úÀ» ¶§ »ç¿ëÇÏ´Â ÀÀ´ä ÄÚµå
(ÀÀ´ä ½Ã Location header¿¡ º¯°æµÈ URI¸¦ Àû¾î Áà¾ß ÇÕ´Ï´Ù.)
500¼­¹ö¿¡ ¹®Á¦°¡ ÀÖÀ» °æ¿ì »ç¿ëÇÏ´Â ÀÀ´ä ÄÚµå

±ÛÀ» ¸¶Ä¡¸ç

RESTFulÇÑ API¸¦ ¼³°èÇÏ½Ç ¶§ µµ¿òÀÌ µÉ¸¸ÇÑ ³»¿ëµéÀ» Á¦ ³ª¸§ÀÇ ¿ì¼±¼øÀ§¸¦ °¡Áö°í Á¤¸®ÇØ º¸¾Ò½À´Ï´Ù. Á¤¸®¸¦ Çϸ鼭 ´Ù½Ã ÇÑ ¹ø ´À³¤ °ÍÀº Á¤È®È÷ ¾ËÁö ¸øÇϸé '¼³¸íÇÒ ¼ö ¾ø´Ù'´Â °ÍÀÔ´Ï´Ù. ´©±º°¡°¡ ±×·± ¸»À» ÇÏ¿´½À´Ï´Ù. '´ç½ÅÀÌ ¾î¶² °ÍÀ» ÇÒ¸Ó´Ï¿¡°Ô ¼³¸íÇØ ÁÖÁö ¸øÇÑ´Ù¸é, ±×°ÍÀº ÁøÁ¤À¸·Î ÀÌÇØÇÑ °ÍÀÌ ¾Æ´Ï´Ù.' Àú ¹®±¸¸¦ Ç×»ó °¡½¿ ±íÀÌ »õ±â°í ¾ÕÀ¸·Î ¹«¾ùÀΰ¡ »õ·Î¿î Áö½ÄÀ» ÇнÀÇØ ½Ç¹«¿¡ Àû¿ëÇÒ ¶§¿¡µµ '´ëÃæ'ÀÌ ¾Æ´Ñ 'Á¤È®ÇÑ ÀÌÇØ'¸¦ ¹ÙÅÁÀ¸·Î ¹®Á¦¸¦ ÇØ°áÇØ ³ª°¡µµ·Ï Çؾ߰ڴٴ ´ÙÁü°ú ÇÔ²² ±ÛÀ» ¸¶¹«¸® Áþµµ·Ï ÇÏ°Ú½À´Ï´Ù.
¸¶Áö¸·À¸·Î REST API´Â Á¤ÇØÁø ¸íÈ®ÇÑ Ç¥ÁØÀÌ ¾ø±â ¶§¹®¿¡ REST API¸¦ »ç¿ëÇÔ¿¡ ÀÖ¾î '¹«¾ùÀÌ ¿Ç°í ±×¸¥Áö'°¡ ¾Æ´Ñ °³¹ßÇÏ´Â ¼­ºñ½ºÀÇ Æ¯Â¡°ú °³¹ß Áý´ÜÀÇ È¯°æ°ú ¼ºÇâ µîÀÌ ÃæºÐÈ÷ °í·ÁµÇ¾î ¼³°èµÇ¾î¾ß ÇÒ °ÍÀÔ´Ï´Ù.

ºÎÁ·ÇÑ ³»¿ëÀ̳ª À߸øµÈ ³»¿ëÀÌ ÀÖ´Ù¸é ´ñ±Û ºÎŹ µå¸³´Ï´Ù.
±ä ±Û ÀоîÁּż­ °¨»çÇÕ´Ï´Ù.

Reference