REST API Á¦´ë·Î ¾Ë°í »ç¿ëÇϱâ
REST API Á¦´ë·Î ¾Ë°í »ç¿ëÇϱâ
¸ñÂ÷
- REST APIÀÇ Åº»ý
- REST ±¸¼º
- REST ÀÇ Æ¯Â¡
- REST API µðÀÚÀÎ °¡À̵å
- HTTP ÀÀ´ä »óÅ ÄÚµå
¾î´À ³¯ ¶á±Ý¾øÀÌ ´ëÇб³ Ä£±¸¿¡°Ô ÀüÈ°¡ ¿Ô½À´Ï´Ù. ±×·¯´õ´Ï ¡®¾ß, 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 | ¿ªÇÒ |
---|---|
POST | POST¸¦ ÅëÇØ ÇØ´ç URI¸¦ ¿äûÇÏ¸é ¸®¼Ò½º¸¦ »ý¼ºÇÕ´Ï´Ù. |
GET | GET¸¦ ÅëÇØ ÇØ´ç ¸®¼Ò½º¸¦ Á¶È¸ÇÕ´Ï´Ù. ¸®¼Ò½º¸¦ Á¶È¸ÇÏ°í ÇØ´ç µµÅ¥¸ÕÆ®¿¡ ´ëÇÑ ÀÚ¼¼ÇÑ Á¤º¸¸¦ °¡Á®¿Â´Ù. |
PUT | PUT¸¦ ÅëÇØ ÇØ´ç ¸®¼Ò½º¸¦ ¼öÁ¤ÇÕ´Ï´Ù. |
DELETE | DELETE¸¦ ÅëÇØ ¸®¼Ò½º¸¦ »èÁ¦ÇÕ´Ï´Ù. |
´ÙÀ½°ú °°Àº ½ÄÀ¸·Î 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
- ¸¶Å© ¸Þ¼¼ (2015), ÀÏ°ü¼º ÀÖ´Â À¥ ¼ºñ½º ÀÎÅÍÆäÀ̽º ¼³°è¸¦ À§ÇÑ REST API µðÀÚÀÎ ±ÔÄ¢ (±è°ü·¡, ±Ç¿ø»ó ¿ª), ÇѺû¹Ìµð¾î
- https://ko.wikipedia.org/wiki/REST
- http://blog.remotty.com/blog/2014/01/28/lets-study-rest/
- https://yangbongsoo.gitbooks.io/study/content/restc758_c774_d574_c640_c124_acc4.html
- http://spoqa.github.io/2012/02/27/rest-introduction.html