OPEN API »ç¿ëÇÏ´Â ¹æ¹ý (OPEN API »ç¿ëÇغ»Àû ÀÖ³ª¿ä?)
OPEN API »ç¿ëÇÏ´Â ¹æ¹ý (OPEN API »ç¿ëÇغ»Àû ÀÖ³ª¿ä?)
°ø°øµ¥ÀÌÅÍ Æ÷Åп¡¼ Á¦°øÇÏ´Â OPEN API »ç¿ëÇÏ´Â ¹æ¹ý¿¡ ´ëÇؼ °£´ÜÈ÷ °øºÎÇغ¸¾Ò´Ù.
(¿ø·¡´Â ÀÚ¹Ù¿¡¼ XML ÆÄ½Ì ¶óÀ̺귯¸®¸¦ Å×½ºÆ®Çغ¸·Á°í Àû´çÇÑ XML ÆÄÀÏÀ» ã´Ù°¡ OPEN API°¡ JSON Çü½Ä ¸»°íµµ XMLÇü½ÄÀ¸·Î Á¦°øÇÑ´Ù´Â °ÍÀÌ »ý°¢³ª¼ Å×½ºÆ®ÇغôÙ.)
½ÅÀÔ °³¹ßÀÚ·Î Ãë¾÷ÇÒ ¶§ °¡²û¾¿ OPEN API »ç¿ë °æÇèÀ» ¹°¾îº¸´Â °÷µµ ÀÖ¾ú´Ù.
ÀÌ¹Ì ¸¹Àº ½ÅÀÔ °³¹ßÀÚµéÀÌ Æ÷Æ®Æú¸®¿À¸¦ ¸¸µé¸é¼ ¾î¶² ÇÁ·ÎÁ§Æ®¿¡¼´Â OPEN API¸¦ »ç¿ëÇغÃÀ»°Å¶ó »ý°¢µÇÁö¸¸ Á¤¸®ÇÏ´Â °â, »ç¿ëÇغ¸Áö ¾ÊÀº ºÐµéµµ °¡º±°Ô °æÇèÇÒ °âÇؼ OPEN API¸¦ »ç¿ëÇÏ´Â ¹æ¹ý¿¡ ´ëÇØ Á¤¸®ÇÑ´Ù.
°ø°øµ¥ÀÌÅÍ Æ÷ÅÐ OPEN API »ç¿ë ÇÁ·Î¼¼½º
1. °ø°øµ¥ÀÌÅÍ Æ÷Åп¡ Á¢¼Ó, ·Î±×ÀÎÇÑ´Ù. (https://www.data.go.kr/)
2. ¿øÇÏ´Â ÀڷḦ °Ë»öÇÑ´Ù.
¿©±â¼´Â ¿À´Ã³¯ Á¦ÀÏ ÇÖ(?)ÇÑ ¹Ì¼¼¸ÕÁö µ¥ÀÌÅ͸¦ °¡Á®¿Í¼ ´ë±â¿À¿° Á¤º¸¸¦ ¹Þ¾Æ º¼ ¿¹Á¤ÀÌ´Ù.
[¹Ì¼¼¸ÕÁö °Ë»öȸé]
[¹Ì¼¼¸ÕÁö °Ë»ö°á°ú]
°Ë»ö°á°ú¸¦ º¸¸é ÆÄÀϵ¥ÀÌÅÍ 9°Ç, ¿ÀÇÂAPI 5°ÇÀÌ ÀÖ´Ù. ±× Áß ³»°¡ ¿øÇÏ´Â API¸¦ ¼±ÅÃÇϸéµÈ´Ù. ¿©±â¼´Â Çѱ¹È¯°æ°ø´Ü_´ë±â¿À¿°Á¤º¸ Á¶È¸ ¼ºñ½º¸¦ »ç¿ëÇÒ °ÍÀÌ´Ù.
3. È°¿ë ½ÅûÇϱâ, »ç¿ë ¹®¼ ´Ù¿î·ÎµåÇϱâ
À§¿¡ º¸ÀÌ´Â »çÁø¿¡¼ "È°¿ë½Åû" ¹öÆ°À» ´·¯¼ È°¿ëÀ» ½ÅûÇÏ¸é µÈ´Ù.
±× Àü¿¡ Âü°í¹®¼ ºÎºÐ¿¡ ÀÖ´Â ¹®¼ ÆÄÀÏÀ» ´Ù¿î·ÎµåÇÏ´Â °ÍÀÌ ÁÁ´Ù. ÀÌ ¹®¼¿¡ API¿¡ ´ëÇÑ ÀÚ¼¼ÇÑ ³»¿ëÀÌ ÀÖ´Ù.
±×¸®°í °£´ÜÇÏ°Ô ´Ù¸¥ ³»¿ëÀ» º¸´Â °Íµµ ÁÁ´Ù.
End Point´Â Àú URL·Î request¸¦ º¸³»¶ó´Â °ÍÀ¸·Î ÀÌÇØÇϸéµÇ°í API À¯ÇüÀº REST, µ¥ÀÌÅÍ ±âº» Æ÷¸ËÀº XMLÀÌ´Ù Á¤µµ È®ÀÎÇÏ°í ³Ñ¾î°£´Ù. (XML¸¸ Á¦°øµÇ´Â °ÍÀº ¾Æ´Ï´Ù. ¹Ø¿¡¼ JSONÀ¸·Îµµ ¹ÞÀ½)
4. °³¹ß °èÁ¤ ½ÅûÇϱâ
[°³¹ß °èÁ¤ ½Åûȸé]
( *** ÀÌ¹Ì ´ë±â¿À¿°Á¤º¸Á¶È¸ API´Â ½ÅûÀ» Çسö¼ ȸéÀ» º¸¿©ÁÙ ¼ö ¾øÀ¸¹Ç·Î ´ë±â Áß±Ý¼Ó Á¤º¸ API¸¦ ½ÅûÇϴ ȸéÀ¸·Î ´ëüÇß´Ù. »ó¼¼±â´ÉÁ¤º¸¸¸ ´Ù¸£±â ¶§¹®¿¡ ¶È°°ÀÌ È®Àθ¸ÇÏ¸é µÈ´Ù.)
"½ÉÀÇ ¿©ºÎ"°¡ "ÀÚµ¿ ½ÂÀÎ"À̹ǷΠ½Åû¿Ï·á¸¸ÇÏ¸é ¹Ù·Î API¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù.
´Ü, ¾Æ·¡¿¡ »ó¼¼±â´É Á¤º¸¿¡¼ ÀÏÀÏ Æ®·¡ÇÈÀÌ 1000(´ë±â¿À¿°Á¤º¸API¿¡¼´Â 500)À̹ǷΠ1000ȸ Á¶È¸¸¦ ÇÏ¸é ´õ ¿À´ÃÀº ´õ ÀÌ»ó »ç¿ëÇÒ ¼ö ¾ø´Ù.
´õ ¸¹Àº Æ®·¡ÇÈÀÌ ÇÊ¿äÇÏ´Ù¸é Ãß°¡ ½Åû°ú ½ÂÀÎÀýÂ÷¸¦ ±â´Ù¸®¸é »ç¿ëÇÒ ¼ö ÀÖ°Ô µÈ´Ù.
½ÂÀÎÀϷκÎÅÍ 24°³¿ùÀÌ °¡´ÉÇÑ Á¡ È®ÀÎÀ» ÇÏ°í, ½Ã½ºÅÛ À¯ÇüÀº ÀϹÝÀûÀ¸·Î ÀϹÝÀ¸·Î µÎ¸é µÈ´Ù.
±×¸®°í »ó¼¼±â´ÉÁ¤º¸¿¡¼ ÀÚ½ÅÀÌ ¿øÇÏ´Â API ÀڷḦ ¼±ÅÃÇؼ ÇÊ¿äÇÑ °Í¸¸ ¹ÞÀ» ¼ö ÀÖ´Ù.
À§¿¡¼´Â ±×³É ´Ù üũÇÑ´Ù.
5. ¸¶ÀÌÆäÀÌÁö> ¿ÀÇÂAPI > °³¹ß°èÁ¤ APIÅ° ¹Þ±â
¸¶ÀÌÆäÀÌÁö¿¡ ¿ÀÇ API¿¡ °³¹ß°èÁ¤À̶ó´Â ÅÇÀ¸·Î °¡¸é È°¿ë¿¡ 1°ÇÀÌ µÇ¾îÀÖÀ» °ÍÀÌ´Ù. (ÀÌÀü¿¡ »ç¿ëÇÏ´ø API°¡ ÀÖ´Ù¸é ´õ ÀÖÀ» ¼ö ÀÖÀ½)
°Å±â¼ "´ë±â¿À¿°Á¤º¸ Á¶È¸ ¼ºñ½ºAPI"¸¦ ´·¯º¸¸é Å° ¹Þ´Â ¹öÆ°ÀÌ ÀÖ´Ù.
ÀÌ ¹öÆ°À» ´·¯¼ Å°¸¦ ¹Þ´Â´Ù.
À§ »çÁø¿¡¼´Â ÀÏ¹Ý ÀÎÁõÅ° Àç¹ß±ÞÀ̶ó°í ³ª¿ÍÀÖÁö¸¸ óÀ½ÇÒ ¶§´Â ÀϹÝÅ° ¹ß±Þ(?) À̶ó°í ½áÀÖÀ» °ÍÀÌ´Ù.
±×°ÍÀ» ´·¯ Å°¸¦ ¹ÞÀ¸¸é °ËÀº»öÀ¸·Î Ä¥ÇØÁø ºÎºÐÀÎ ÀÏ¹Ý ÀÎÁõÅ°ºÎºÐ¿¡ Å° °ªÀÌ ¹ß±ÞµÉ °ÍÀÌ´Ù.
±×·¯¸é ÇØ´çÅ°¸¦ »ç¿ëÇؼ API¼¹ö¿¡ ¿äûÇÏ¸é °á°ú°ªÀ» ¹ÞÀ» ¼ö ÀÖ´Ù.
¶ÇÇÑ 3¹ø¿¡¼ ¹ÞÀº Âü°í¹®¼¸¦ ¿©±â¼µµ ¹ÞÀ» ¼ö ÀÖ´Ù.
6. ¾î¶»°Ô »ç¿ëÇÏ´ÂÁö ¹®¼ È®ÀÎÇϱâ
ÀÌÁ¦ »ç¿ë¿¡ ÇÊ¿äÇÑ API key´Â ¾ò¾úÀ¸´Ï ¾îµð¿¡ ¾î¶»°Ô º¸³»´ÂÁö¸¸ ¾Ë¸é µÈ´Ù.
±× ¹æ¹ýÀº ¹®¼¿¡ Àß ³ª¿ÍÀÖ´Ù.
[¸ñÂ÷ȸé]
¸ñÂ÷¿¡¼ »ç¿ë°¡´ÉÇÑ ¼ºñ½º ¸ñ·ÏÀ» È®ÀÎÇÑ´Ù.
À§ »çÁø¿¡¼´Â 2.2. ´ë±â¿À¿°Á¤º¸Á¶È¸ ¼ºñ½º¸¦ ÀÌ¿ëÇÒ ¿¹Á¤ÀÌ´Ï ÇØ´ç ÆäÀÌÁö·Î °¡¼ È®ÀÎÇغ¸¸éµÈ´Ù.
ÇØ´ç ÆäÀÌÁö·Î°¡¸é ¼ºñ½º ÀÎÁõ¹æ¹ýÀÌ ¼ºñ½º key¸¸ ÀÖÀ¸¸é µÈ´Ù°í µ¿±×¶ó¹Ì Ç¥½Ã°¡ µÇ¾îÀÖ°í ±³È¯ µ¥ÀÌÅÍÇ¥ÁØÀ¸·Î XML°ú JSONÀ» Á¦°øÇÑ´Ù°í µÇ¾îÀÖ´Ù.
±× À§¿¡ ¹ØÁÙÀ» ¸ø Ãƴµ¥ Á¦ÀÏ Áß¿äÇÑ °ÍÀÎ ÀÎÅÍÆäÀ̽º Ç¥ÁØÀ¸·Î RESTÀÇ GET ¹æ½ÄÀ¸·Î ¿äûÇ϶ó°í ³ª¿ÍÀÖ´Ù.
¶ÇÇÑ ¸Þ½ÃÁö ±³È¯ À¯ÇüÀÌ Request-ResponseÀ̶ó´Â °ÍÀ» ¾Ë ¼ö ÀÖ°í ½Ç½Ã°£ Á¤º¸Áö¸¸ ¸Å ÃÊ´çÀÌ ¾Æ´Ï¶ó 10ºÐ¸¶´Ù ÃøÁ¤µÈ °ªÀÌ ¹Ý¿µµÇ´Â °ÍÀ» ¾Ë ¼ö ÀÖ´Ù.
³¡À¸·Î JSON¹æ½ÄÀ¸·Î ÀÀ´äÀ» ¹Þ°í ½ÍÀ¸¸é &_returnType=json À» Ãß°¡ÇÏ¸é µÈ´Ù°í ÇÑ´Ù.
(¹Ø¿¡¼ Å×½ºÆ®ÇÒ ¶§ ÇØ´ç ÆĶó¹ÌÅÍ°ªÀ» ³Ö¾î¼ jsonÀ¸·Î ¹Þ¾Æ º»´Ù.)
[¿äû/ÀÀ´ä ¸Þ½ÃÁö]
Áß°£¿¡ ÀÌ·¸°Ô ¸Þ½ÃÁö sampleÀÌ ÀÖ´Ù.
Àú ¸Þ½ÃÁö ºÎºÐ¿¡¼ ¼ºñ½ºÅ°¸¸ ³»°¡ ¾Æ±î ¹ÞÀº apiÅ°¸¦ ³Ö°í ÇØ´ç URL·Î ¿äûÇϸé ÀÀ´äÀ» ¹ÞÀ» ¼ö ÀÖ´Ù.
°¢ ÆĶó¹ÌÅÍ¿¡ ´ëÇÑ ÀÌÇصµ ¾Æ·¡ »çÁøó·³ ¹®¼¿¡¼ ¾Ë ¼ö ÀÖ´Ù.
[ÆĶó¹ÌÅÍ È®ÀÎ]
ÆĶó¹ÌÅÍ¿¡ ´ëÇÑ ¼³¸íÀÌ ³ª¿ÍÀÖ´Ù. ÀÏ´Ü ¿ì¸®°¡ °ü½ÉÀÖ´Â °ÍÀº stationNameÀ¸·Î ÃøÁ¤¼Ò¸íÀ» ³»°¡ ¾Ë°í½Í¾îÇÏ´Â À§Ä¡ÀÇ ÃøÁ¤¼Ò·Î º¯°æÇÏ´Â °ÍÀÌ°í dataTermµµ ÃÖ±Ù 1ÀÏ°£ÀÇ µ¥ÀÌÅÏÁö, 1°³¿ù°£ÀÇ µ¥ÀÌÅÏÁö, 3°³¿ù°£ÀÇ µ¥ÀÌÅÏÁö Á¤ÇÏ´Â °ÍÀÌ´Ù.
ÃøÁ¤¼Ò´Â ÇØ´ç API¿¡¼µµ ¾Ë ¼ö ÀÖÁö¸¸ ¿¡¾îÄÚ¸®¾ÆÀÇ ÃøÁ¤¼Ò Á¤º¸¿¡¼ °£´ÜÈ÷ ÆľÇÇÒ ¼öµµ ÀÖ´Ù.
[¿¡¾îÄÚ¸®¾Æ ¹Ì¼¼¸ÕÁö ÃøÁ¤¼ÒÁ¤º¸]
Áöµµ¿¡¼ ¿øÇÏ´Â Áö¿ª(ex ÀÎõ, °æ±â, ¼¿ï, ...)À» Ŭ¸¯ÇÏ°í ¿·¿¡ ³ª¿À´Â ÃøÁ¤¼Ò ¸íÀ¸·Î ÀÔ·ÂÇؼ Å×½ºÆ®Çغ¸¸é µÈ´Ù.
7. ºê¶ó¿ìÀú¸¦ ÀÌ¿ëÇÑ Å×½ºÆ®
ÀÌÁ¦ º¸³¾ ¸Þ½ÃÁöµµ ¾Ë¾Ò°í ¸Þ½ÃÁöÀÇ ÀǹÌ(ÆĶó¹ÌÅÍ)µµ ¾Ë¾Ò°í api key ±îÁö ¾ò¾úÀ¸´Ï ¸ðµç Áغñ°¡ µÇ¾ú´Ù.
ÀÌÁ¦ ¾î¶² ÇÁ·Î±×·¡¹Ö ¾ð¾î·Î § ÇÁ·Î±×·¥ÀÌµç ±×³É ºê¶ó¿ìÀú¿¡¼ Å×½ºÆ®¸¸ Çغ¸µç ¿äûÇÒ °Í¸¸ ³²¾Ò´Ù.
[ºê¶ó¿ìÀú Å×½ºÆ® json, ºê¶ó¿ìÀú Å×½ºÆ® xml]
[ÀÚ¹Ù ¼Ò½º json, ÀÚ¹Ù ¼Ò½º xml]
º¸´Ù½ÃÇÇ ºê¶ó¿ìÀúÀÇ URLâ¿¡´Ù°¡ Á÷Á¢ ¸Þ½ÃÁö(GET¹æ½Ä)¸¦ ³¯·Áµµ ÀÀ´äÀÌ ¿À´Â °ÍÀ» È®ÀÎÇÒ ¼ö ÀÖ°í, ÀÚ¹Ù·Î °£´ÜÇÏ°Ô ¼Ò½º¸¦ ¸¸µé¾î¼ ¿äûÇصµ ¹Þ¾ÆÁö´Â °ÍÀ» È®ÀÎÇÒ ¼ö ÀÖ´Ù.
ÀÚ¹Ù »Ó¸¸¾Æ´Ï¶ó ´Ù¾çÇÑ ÇÁ·Î±×·¡¹Ö ¾ð¾î¿¡¼ ȤÀº ÇÁ·¹ÀÓ¿öÅ©¿¡¼ À§¿Í À¯»çÇÑ ¹æ½ÄÀ¸·Î API¸¦ È£ÃâÇÏ°í °á°ú¸¦ ¸®ÅÏÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù.
³¡À¸·Î APIÈ£ÃâÇÏ´Â »ùÇà ÀÚ¹Ù¼Ò½º¸¦ Á¦°øÇÑ´Ù.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | import java.io.BufferedReader; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; public class OpenApi { public static void main(String[] args) { BufferedReader br = null; try{ String urlstr = "http://openapi.airkorea.or.kr/" + "openapi/services/rest/ArpltnInforInqireSvc/getMsrstnAcctoRltmMesureDnsty" + "?stationName=¼ö³»µ¿&dataTerm=month&pageNo=1&numOfRows=10&ServiceKey=¼ºñ½ºÅ°&ver=1.3"; URL url = new URL(urlstr); HttpURLConnection urlconnection = (HttpURLConnection) url.openConnection(); urlconnection.setRequestMethod("GET"); br = new BufferedReader(new InputStreamReader(urlconnection.getInputStream(),"UTF-8")); String result = ""; String line; while((line = br.readLine()) != null) { result = result + line + "\n"; } System.out.println(result); }catch(Exception e){ System.out.println(e.getMessage()); } } } | cs |
ÆĶó¹ÌÅÍ¿¡¼ "ServiceKey=~" ºÎºÐ¸¸ ÀÚ½ÅÀÇ api key·Î °íÄ¡¸é ¾ÆÁÖ Àß µ¿ÀÛÇÑ´Ù.
Ãâó: https://jeong-pro.tistory.com/143 [±âº»±â¸¦ ½×´Â Á¤¾Æ¸¶Ãß¾î ÄÚµùºí·Î±×]
Ãâó: https://jeong-pro.tistory.com/143 [±âº»±â¸¦ ½×´Â Á¤¾Æ¸¶Ãß¾î ÄÚµùºí·Î±×]
Ãâó: https://jeong-pro.tistory.com/143 [±âº»±â¸¦ ½×´Â Á¤¾Æ¸¶Ãß¾î ÄÚµùºí·Î±×]
Ãâó: https://jeong-pro.tistory.com/143 [±âº»±â¸¦ ½×´Â Á¤¾Æ¸¶Ãß¾î ÄÚµùºí·Î±×]
Ãâó: https://jeong-pro.tistory.com/143 [±âº»±â¸¦ ½×´Â Á¤¾Æ¸¶Ãß¾î ÄÚµùºí·Î±×]