ããã«ã¡ã¯ãäœæ°ïŒããã°ã©ãã³ã°ãéæ³ã®ãããªãã®ã§ããå ŽåãWebã¹ã¯ã¬ã€ãã³ã°ã¯éåžžã«åŒ·åãªéè¡ã§ããç°¡åãªèªåããã°ã©ã ãäœæããããšã§ãWebãµãŒããŒã«èŠæ±ãéä¿¡ããWebãµãŒããŒããããŒã¿ãèŠæ±ããããããåæããŠå¿
èŠãªæ
å ±ãæœåºã§ããŸãããã®æ¬ã®æ°ããæ¡åŒµçã¯ãWebã¹ã¯ã¬ã€ãã³ã°ã玹ä»ããã ãã§ãªããçŸä»£ã®ã€ã³ã¿ãŒãããäžã®ããããçš®é¡ã®ããŒã¿ãåéããã®ã«ã圹ç«ã¡ãŸããããŒãIã¯ãWebã¹ã¯ã¬ã€ãã³ã°ã®ä»çµã¿ã«çŠç¹ãåœãŠãŠããŸããPythonã䜿çšããŠWebãµãŒããŒããæ
å ±ãèŠæ±ããåºæ¬çãªãµãŒããŒå¿çåŠçãå®è¡ãããµã€ããšã®èªåå¯Ÿè©±ãæŽçããæ¹æ³ã§ããããŒãIIã§ã¯ãWebã¹ã¯ã¬ã€ãã³ã°ã®ã·ããªãªã§åœ¹ç«ã€ããå
·äœçãªããŒã«ãšã¢ããªã±ãŒã·ã§ã³ã«ã€ããŠèª¬æããŸãã -è€éãªHTMLããŒãžãè§£æããŸãã-Scrapyãã¬ãŒã ã¯ãŒã¯ã䜿çšããŠæ€çŽ¢ãããããéçºããŸãã -ã¹ã¯ã¬ã€ãã³ã°ãããããŒã¿ãä¿åããæ¹æ³ãåŠã³ãŸãã -ããã¥ã¡ã³ãããããŒã¿ãèªã¿åã£ãŠæœåºããŸãã -ãã©ãŒããããäžååãªããŒã¿ãã¯ãªãŒã³ã¢ããããŠæ£èŠåããŸãã -èªç¶èšèªã§æ
å ±ãèªã¿æžãããŸãã -ãã©ãŒã ãšãã°ã€ã³ã®æ€çŽ¢ããã¹ã¿ãŒããŸãã -JavaScriptã¹ã¯ã¬ã€ãã³ã°ãšAPIäœæ¥ã«ã€ããŠåŠã³ãŸãã -ç»åãããã¹ãã«å€æããããã°ã©ã ã䜿çšããã³äœæããŸãã -ã¹ã¯ã¬ã€ãã³ã°ãã©ãããšããããããã«ãŒããã€ãã¹ããæ¹æ³ãåŠã³ãŸãã -ã¹ã¯ã¬ã€ãã³ã°ã§èªåã®ãŠã§ããµã€ãããã¹ãããŸãã-JavaScriptã¹ã¯ã¬ã€ãã³ã°ãšAPIäœæ¥ã«ã€ããŠåŠã³ãŸãã -ç»åãããã¹ãã«å€æããããã°ã©ã ã䜿çšããã³äœæããŸãã -ã¹ã¯ã¬ã€ãã³ã°ãã©ãããšããããããã«ãŒããã€ãã¹ããæ¹æ³ãåŠã³ãŸãã -ã¹ã¯ã¬ã€ãã³ã°ã§èªåã®ãŠã§ããµã€ãããã¹ãããŸãã-JavaScriptã¹ã¯ã¬ã€ãã³ã°ãšAPIäœæ¥ã«ã€ããŠåŠã³ãŸãã -ç»åãããã¹ãã«å€æããããã°ã©ã ã䜿çšããã³äœæããŸãã -ã¹ã¯ã¬ã€ãã³ã°ãã©ãããšããããããã«ãŒããã€ãã¹ããæ¹æ³ãåŠã³ãŸãã -ã¹ã¯ã¬ã€ãã³ã°ã§èªåã®ãŠã§ããµã€ãããã¹ãããŸãã
APIã䜿çšããWebã¯ããŒã«
JavaScriptã¯ãäŒçµ±çã«Webã¯ããŒã©ãŒã®æ®éçãªåªããšèããããŠããŸããæã¯ãWebãµãŒããŒã«éä¿¡ãããªã¯ãšã¹ãããåããªã¯ãšã¹ããè¡ãããšã§ãŠãŒã¶ãŒããã©ãŠã¶ã«è¡šç€ºããã®ãšåãããŒã¿ã確å®ã«åä¿¡ã§ããããšããããŸããã
ã³ã³ãã³ããçæããã³ããŒãããããã®JavaScriptããã³Ajaxã¡ãœãããæ¥å¢ããã«ã€ããŠãäžèšã®ç¶æ³ã¯äžè¬çã§ã¯ãªããªãã€ã€ãããŸãã第11ç« ã§ã¯ããã®åé¡ã解決ãã1ã€ã®æ¹æ³ãã€ãŸãSeleniumã䜿çšããŠãã©ãŠã¶ãŒãèªååããããŒã¿ããã§ããããæ¹æ³ã«ã€ããŠèª¬æããŸãããããã¯ç°¡åã§ããããã¯ã»ãšãã©åžžã«æ©èœããŸãã
åé¡ã¯ãã»ã¬ã³ã®ããã«åŒ·åã§å¹æçãªãã³ããŒãæã«æã£ãŠãããšããã¹ãŠã®ãŠã§ãã¹ã¯ã¬ã€ãã³ã°ã¿ã¹ã¯ãéã®ããã«æãå§ããããšã§ãã
ãã®ç« ã§ã¯ããã®JavaScriptããã¹ãŠãã€ãã¹ããŠïŒå®è¡ãããããŒããããããã«ïŒãããŒã¿ãœãŒã¹ïŒãã®ããŒã¿ãçæããAPIïŒã«çŽæ¥ã¢ã¯ã»ã¹ããæ¹æ³ãåŠç¿ããŸãã
APIã®ç°¡åãªç޹ä»
RESTAPIãGraphQL21ãJSONãããã³XMLã®ãã¥ã¢ã³ã¹ã«é¢ããæ¬ãè¬æŒããã¥ãŒããªã¢ã«ã¯ç¡æ°ã«ãããŸããããããã¯ãã¹ãŠ1ã€ã®åçŽãªæŠå¿µã«åºã¥ããŠããŸãã APIã¯ãããã°ã©ã ãç°ãªãèšèªã§èšè¿°ãããŠããå Žåãæ§é ãç°ãªãå Žåã§ããããããã°ã©ã ãå¥ã®ããã°ã©ã ãšå¯Ÿè©±ã§ããããã«ããæšæºåãããæ§æãå®çŸ©ããŸãã
ãã®ã»ã¯ã·ã§ã³ã§ã¯ãWeb APIïŒç¹ã«ãWebãµãŒããŒããã©ãŠã¶ãŒãšå¯Ÿè©±ã§ããããã«ããAPIïŒã«çŠç¹ãåœãŠãŸããããã§ã¯ãAPIãšã¯ãã®ã¿ã€ãã®ã€ã³ã¿ãŒãã§ãŒã¹ãæå³ããŸãããã ããä»ã®ã³ã³ããã¹ãã§ã¯ãAPIã¯äžè¬çãªçšèªã§ããããããšãã°ãJavaããã°ã©ã ãåãã³ã³ãã¥ãŒã¿ãŒã§å®è¡ãããŠããPythonããã°ã©ã ãšå¯Ÿè©±ã§ããããã«ããã€ã³ã¿ãŒãã§ã€ã¹ãæå³ããå Žåãããããšã«æ³šæããŠãã ããã APIã¯å¿ ããããã€ã³ã¿ãŒãããäžã®ã€ã³ã¿ãŒãã§ãŒã¹ããæå³ããããã§ã¯ãªããWebãã¯ãããžãŒãå«ããå¿ èŠã¯ãããŸããã
Web APIã¯ãåºã宣äŒãããååã«ææžåããããªãŒãã³ãœãŒã¹ãµãŒãã¹ãšå¯Ÿè©±ããããã«éçºè ã«ãã£ãŠæãäžè¬çã«äœ¿çšãããŸããããšãã°ãã¢ã¡ãªã«ã®ã±ãŒãã«ã¹ããŒãTVãã£ã³ãã«ESPNã¯ãã¢ã¹ãªãŒããã²ãŒã ã®ã¹ã³ã¢ãªã©ã«é¢ããæ å ±ã®APIïŒhttp://www.espn.com/apis/devcenter/docs/ïŒãæäŸããŠããŸããGoogleã«ã¯éçºè ã»ã¯ã·ã§ã³ïŒhttpsïŒ/ /console.developers.google.comïŒèšèªã®ç¿»èš³ãåæããžãªãã±ãŒã·ã§ã³çšã®APIãæ°åãããŸãã
ããããã¹ãŠã®APIã®ããã¥ã¡ã³ãã§ã¯ãéåžžããããã®URLã®äžéšãšããŠããŸãã¯GETãã©ã¡ãŒã¿ãŒãšããŠæ©èœããå¯å€ãã©ã¡ãŒã¿ãŒã䜿çšããŠãèŠæ±å¯èœãªURLã®åœ¢åŒã§ã«ãŒããŸãã¯ãšã³ããã€ã³ãã«ã€ããŠèª¬æããŠããŸãã
ããšãã°ã次ã®URLã§ã¯ãpathparamã¯ãã¹ãã©ã¡ãŒã¿ã§ãã
example.com/the-api-route/pathparam
ãããŠããpathparamã¯ããã©ã¡ãŒã¿1ãã©ã¡ãŒã¿ã®å€ã§ããïŒ
example.com/the-api-route?param1=pathparam
APIãžããŒã¿ã転éããã©ã¡ãã®æ¹æ³ãããããéåžžã«åºã䜿çšãããŠããŸããã³ã³ãã¥ãŒã¿ãµã€ãšã³ã¹ã®ä»ã®å€ãã®åŽé¢ãšåæ§ã«ã倿°ããã¹ãä»ããŠæž¡ãããã¿ã€ãã³ã°ãšå Žæãããã³ãã©ã¡ãŒã¿ãä»ããŠæž¡ãããã¿ã€ãã³ã°ã«ã€ããŠãç±å¿ãªå²åŠçè°è«ã®å¯Ÿè±¡ãšãªã£ãŠããŸãã
APIãªã¯ãšã¹ããžã®å¿çã¯ãéåžžãJSONãŸãã¯XML圢åŒã§è¿ãããŸããçŸåšãJSONã¯XMLãããã¯ããã«äººæ°ããããŸãããXMLã«ãééããããšããããŸããå€ãã®APIã§ã¯ãå¿çã®ã¿ã€ããéžæã§ããŸããéåžžã¯ãåä¿¡ããå¿çã®ã¿ã€ããæ±ºå®ããå¥ã®ãã©ã¡ãŒã¿ãŒã䜿çšããŸãã
APIãªã¯ãšã¹ãã«å¯ŸããJSONå¿çã®äŸã次ã«ç€ºããŸãã
{"user":{"id": 123, "name": "Ryan Mitchell", "city": "Boston"}}
ãããŠããããXML圢åŒã®APIãªã¯ãšã¹ããžã®å¿çã§ãã
<user><id>123</id><name>Ryan Mitchell</name><city>Boston</city></user>
ãµã€ãip-api.comïŒhttp://ip-api.com/ïŒã«ã¯ãIPã¢ãã¬ã¹ãå®éã®ç©çã¢ãã¬ã¹ã«å€æããæç¢ºã§äŸ¿å©ãªAPIããããŸããæ¬¡ã®
ip-api.com/json/50.78.253.58 ããã©ãŠã¶ã«å ¥åããŠãç°¡åãªAPIãªã¯ãšã¹ããäœæããŠã¿ããšã次ã®
ãããªå¿çãè¿ãããŸã ã
{"ip":"50.78.253.58","country_code":"US","country_name":"United States", "region_code":"MA","region_name":"Massachusetts","city":"Boston", "zip_code":"02116","time_zone":"America/New_York","latitude":42.3496, "longitude":-71.0746,"metro_code":506}
ãªã¯ãšã¹ãã«ã¯jsonãã¹ãã©ã¡ãŒã¿ãããããšã«æ³šæããŠãã ããã XMLãŸãã¯CSV圢åŒã§å¿çãååŸããã«ã¯ãé©åãªåœ¢åŒã«çœ®ãæããå¿ èŠããããŸã
ãip
-api.com / xml / 50.78.253.58 ip-api.com/csv/50.78.253.58API
ããã³HTTPã¡ãœãã
åã®ã»ã¯ã·ã§ã³ãAPIã調ã¹ãæ å ±ãååŸããããã«ãµãŒããŒã«GETãªã¯ãšã¹ããéä¿¡ããŸããã HTTPãä»ããŠWebãµãŒããŒã«æ å ±ãèŠæ±ããäž»ãªæ¹æ³ïŒãŸãã¯æ¹æ³ïŒã¯4ã€ãããŸã
ã
- 圹è·;
-ããã;
-åé€ã
æè¡çã«ã¯ã4çš®é¡ä»¥äžã®ãªã¯ãšã¹ãããããŸãïŒããšãã°ããŸã HEADãOPTIONSãCONNECTããããŸãïŒããAPIã§äœ¿çšãããããšã¯ãã£ãã«ãªãããããã«ééããå¯èœæ§ã¯ã»ãšãã©ãããŸããã APIã®å€§éšåã¯ãããã4ã€ã®ã¡ãœããã«å¶éãããŠãããå Žåã«ãã£ãŠã¯ãããã®äžéšã«ããå¶éãããŠããŸãã GETã®ã¿ããŸãã¯GETãšPOSTã®ã¿ã䜿çšããAPIã¯åžžã«ååšããŸãã
GETã¯ããã©ãŠã¶ã®ã¢ãã¬ã¹ããŒã«ã¢ãã¬ã¹ãå ¥åããŠãµã€ãã«ã¢ã¯ã»ã¹ãããšãã«äœ¿çšãããªã¯ãšã¹ãã§ãããšã ããªãã¯ip-api.com/json/50.78.253.58ã蚪åããããªãã¯ãGETã¡ãœããã䜿çšããŠããŸãããã®ãªã¯ãšã¹ãã¯ããããããŠã§ããµãŒããŒããã®æ å ±ãæããŠãã ããããšããã³ãã³ããšèããããšãã§ããŸãã
GETèŠæ±ã¯ãå®çŸ©äžããµãŒããŒããŒã¿ããŒã¹ã®å 容ã倿ŽããŸãããäœãä¿åããããäœã倿ŽãããŸãããæ å ±ã¯èªã¿åãããã ãã§ãã
POSTã¯ããã©ãŒã ãžã®å ¥åãŸãã¯æ å ±ã®éä¿¡æã«äœ¿çšãããèŠæ±ã§ããããããããµãŒããŒã¹ã¯ãªããã«ããåŠçãç®çãšããŠããŸãããµã€ãã«ãã°ã€ã³ãããã³ã«ãPOSTãªã¯ãšã¹ããè¡ãããŠãŒã¶ãŒåãšïŒã§ããã°ïŒæå·åããããã¹ã¯ãŒããæž¡ããŸãã APIãä»ããŠPOSTãªã¯ãšã¹ããè¡ãããšã§ããµãŒããŒã«ããã®æ å ±ãããŒã¿ããŒã¹ã«ä¿åããŠãã ããããšäŒããŠããããšã«ãªããŸãã
ãµã€ããšããåããããšãã®PUTãªã¯ãšã¹ãã¯ããŸã䜿çšãããŸããããAPIã§çºçããããšããããŸãããã®ãªã¯ãšã¹ãã¯ããªããžã§ã¯ããŸãã¯æ å ±ã倿Žããããã«äœ¿çšãããŸããããšãã°ãAPIã¯POSTãªã¯ãšã¹ãã䜿çšããŠãŠãŒã¶ãŒãäœæããPUTãªã¯ãšã¹ãã䜿çšããŠãŠãŒã¶ãŒã®ã¡ãŒã«ã¢ãã¬ã¹ã倿Žã§ããŸãã
ãæ³åã®ãšãããDELETEãªã¯ãšã¹ãã¯ãªããžã§ã¯ããåé€ããããã«äœ¿çšãããŸããããšãã°ãDELETEãªã¯ãšã¹ããmyapi.com/user/23ã«éä¿¡ãã ãšããŠãŒã¶ãŒID 23ãåé€ãããŸããDELETEã¡ãœããã¯ãäž»ã«æ å ±ãé åžãããããŠãŒã¶ãŒãäœæã§ããããã«ããããã«äœæãããããããªãŒãã³APIã§ã¯ããŸãèŠãããŸããããŸãã¯æ å ±ãå ¬éããŸãããããŒã¿ããŒã¹ããåé€ããªãã§ãã ããã
GETãPOSTãPUTãããã³DELETEãªã¯ãšã¹ããšã¯ç°ãªããããŒã¿ããªã¯ãšã¹ããããURLãŸãã¯ã«ãŒãã«å ããŠããªã¯ãšã¹ãã®æ¬æã§æ å ±ãæž¡ãããšãã§ããŸãã
WebãµãŒããŒããåä¿¡ããå¿çãšåæ§ã«ããªã¯ãšã¹ãæ¬æã®ãã®ããŒã¿ã¯éåžžJSONã§ããããããŸãäžè¬çã§ã¯ãããŸãããXMLã§ããç¹å®ã®ããŒã¿åœ¢åŒã¯ãAPIæ§æã«ãã£ãŠæ±ºå®ãããŸããããšãã°ãããã°æçš¿ã«ã³ã¡ã³ãã远å ããAPIã䜿çšããå Žåãæ¬¡ã®PUTãªã¯ãšã¹ããäœæã§ããŸãïŒ
example.com/commentsïŒpost = 123 次ã®
ãããªãªã¯ãšã¹ãæ¬æã䜿çšããŸãã
{"title": "Great post about APIs!", "body": "Very informative. Really helped me out with a tricky technical challenge I was facing. Thanks for taking the time to write such a detailed blog post about PUT requests!", "author": {"name": "Ryan Mitchell", "website": "http://pythonscraping.com", "company": "O'Reilly Media"}}
ããã°æçš¿IDïŒ123ïŒãURLã®ãã©ã¡ãŒã¿ãŒãšããŠæž¡ãããäœæããã³ã¡ã³ãã®ã³ã³ãã³ãããªã¯ãšã¹ãæ¬æã«æž¡ãããããšã«æ³šæããŠãã ããããã©ã¡ãŒã¿ãšããŒã¿ã¯ããã©ã¡ãŒã¿ãšãªã¯ãšã¹ãæ¬æã®äž¡æ¹ã§æž¡ãããšãã§ããŸããã©ã®ãã©ã¡ãŒã¿ãŒãå¿ èŠã§ãã©ãã«æž¡ããããã¯ãAPIæ§æã«ãã£ãŠæ±ºå®ãããŸãã
APIãªã¯ãšã¹ããžã®å¿çã®è©³çް
ãã®ç« ã®åé ã®ip-api.comã®äŸã§èŠãããã«ãAPIã®éèŠãªæ©èœã¯ããããã®ã€ã³ã¿ãŒãã§ã€ã¹ãé©åã«ãã©ãŒããããããå¿çãè¿ãããšã§ããæãäžè¬çãªå¿ç圢åŒã¯ãXMLïŒeXtensible Markup LanguageïŒãšJSONïŒJavaScript Object NotationïŒã§ãã
è¿å¹Žãããã€ãã®äž»ãªçç±ãããJSONã¯XMLãããã¯ããã«äººæ°ããããŸãããŸããJSONãã¡ã€ã«ã¯éåžžãå·§åŠã«äœæãããXMLãã¡ã€ã«ãããå°ããã§ããããšãã°ã98æåã®é·ãã®æ¬¡ã®XMLããŒã¿ãæ¯èŒããŸãã
<user><firstname>Ryan</firstname><lastname>Mitchell</
lastname><username>Kludgist</username></user>
åãJSONããŒã¿ãèŠãŠã¿ãŸãããã
{"user":{"firstname":"Ryan","lastname":"Mitchell","username":"Kludgist"}}
ããã¯ããã73æåã§ãåãXMLããŒã¿ããã36ïŒ å°ãªããªã£ãŠããŸãã
ãã¡ãããXMLã¯æ¬¡ã®ããã«ãã©ãŒãããã§ããå¯èœæ§ããããŸãã
<user firstname="ryan" lastname="mitchell" username="Kludgist"></user>
ãã ãããã®ãã¥ãŒã¯ãã£ãŒãããŒã¿ã®ãã¹ãããµããŒãããŠããªããããããã¯ãå§ãããŸãããããã§ãããšã³ããªã®é·ãã¯71æåã§ãåçã®JSONãšã»ãŒåãã§ãã
JSONãXMLãããæ¥éã«æ®åããŠãããã1ã€ã®çç±ã¯ãWebãã¯ãããžãŒã®å€åã«é¢ä¿ããŠããŸãã以åã¯ãAPIåä¿¡è ã¯äž»ã«PHPãŸãã¯.NETãµãŒããŒãµã€ãã¹ã¯ãªããã§ãããããã§ãAngularãBackboneãªã©ã®ãã¬ãŒã ã¯ãŒã¯ãAPIåŒã³åºããéåä¿¡ããããšã倿ããå¯èœæ§ããããŸãããµãŒããŒãã¯ãããžãŒã¯ãããçšåºŠãããŒã¿ãã©ã®ãããªåœ¢åŒããšãããæ°ã«ããŸããããã ããBackboneãªã©ã®JavaScriptã©ã€ãã©ãªã§ã¯ãJSONã®åŠçãç°¡åã§ãã
APIã¯XMLãŸãã¯JSON圢åŒã®ããããã§å¿çãè¿ãããšãäžè¬çã«èªããããŠããŸãããä»ã®ãªãã·ã§ã³ãå¯èœã§ãã APIå¿çã¿ã€ãã¯ããã®ã€ã³ã¿ãŒãã§ãŒã¹ãäœæããããã°ã©ããŒã®æ³ååã«ãã£ãŠã®ã¿å¶éãããŸãããã1ã€ã®å žåçãªå¿ç圢åŒã¯CSVã§ãïŒip-api.comã®äŸãåç §ïŒãåå¥ã®APIã䜿çšãããšããã¡ã€ã«ãäœæããããšãã§ããŸãããµãŒããŒã«ãªã¯ãšã¹ããéä¿¡ãããšãæå®ããããã¹ããã¹ãŒããŒã€ã³ããŒãºãããç»åãçæãããŸãããŸãã¯ãç¹å®ã®XLSXãŸãã¯PDFãã¡ã€ã«ããªã¯ãšã¹ãããããšãã§ããŸãã
äžéšã®APIã¯ãå¿çããŸã£ããè¿ããŸãããããšãã°ãããã°æçš¿ã«ã³ã¡ã³ããäœæããããã«ãµãŒããŒã«ãªã¯ãšã¹ããéä¿¡ãããšããµãŒããŒã¯200ã®HTTPå¿çã³ãŒãããè¿ãããšãã§ããŸãããããã¯æ¬¡ã®ããšãæå³ããŸãããã¹ãŠé 調ïŒ"ä»ã®ã¯ãšãªã¯ã次ã®ãããªæå°éã®å¿çãè¿ãå ŽåããããŸãã
{"success": true}
ãšã©ãŒãçºçããå Žåã¯ã次ã®å¿çãåŸãããŸãã
{"error": {"message": "Something super bad happened"}}
ãŸãã¯ãAPIãé©åã«æ§æãããŠããªãå Žåãå€èªã§ããªãã¹ã¿ãã¯ãã¬ãŒã¹ãŸãã¯è±èªã®ããã¹ãã衚瀺ãããå¯èœæ§ããããŸããAPIã«ãªã¯ãšã¹ããéä¿¡ãããšãã¯ãéåžžãåä¿¡ããã¬ã¹ãã³ã¹ãå®éã«JSON圢åŒïŒãŸãã¯XMLãCSVããŸãã¯åä¿¡ããäºå®ã®åœ¢åŒïŒã§ããããšãæåã«ç¢ºèªããã®ãçã«ããªã£ãŠããŸãã
èè ã«ã€ããŠ
Ryan Mitchellã¯ããã¹ãã³ã®HedgeServã®ã·ãã¢ãœãããŠã§ã¢ãšã³ãžãã¢ã§ãããããŒã¿åæçšã®APIãšããŒã«ãéçºããŠããŸããã©ã€ã¢ã³ã¯å·¥åŠæè¡å€§åŠã忥ããŸããã Franklin V. Olinã¯ãããŒããŒã倧åŠã®ç¶ç¶æè²ã³ãŒã¹ã§ãœãããŠã§ã¢ãšã³ãžãã¢ãªã³ã°ã®ä¿®å£«å·ãšããŒã¿åæããã³åŠçã®èšŒææžãååŸããŠããŸãã HedgeServã«åå ããåãã©ã€ã¢ã³ã¯Abineã§åããPythonã§Webã¹ã¯ã¬ã€ããŒãšèªååããŒã«ãéçºããŸããã圌ã¯å®æçã«å°å£²ãéèã補è¬ã®Webã¹ã¯ã¬ã€ãã³ã°ãããžã§ã¯ãã«ã€ããŠã¢ããã€ã¹ããŠããŸããããŒã¹ã€ãŒã¹ã¿ã³å€§åŠãšãšã³ãžãã¢ãªã³ã°ã¢ã³ããã¯ãããžãŒå€§åŠã§ã³ã³ãµã«ã¿ã³ãããã³ããªãŒã©ã³ã¹ã®æåž«ãšããŠåæã«åããŠããŸãããã©ã³ã¯ãªã³V.ãªãŒãªã³ã
ãã®æ¬ã«ã€ããŠã®è©³çްã¯ãäžã§èŠã€ããããšãã§ãã åºç瀟ã®ãŠã§ããµã€ã
» ç®æ¬¡
» æç²
ã«ã€ããŠã¯å± äœè ã¯ãŒãã³ã§25ïŒ å²åŒ- Pythonã®
æžç±ã®çŽã®ããŒãžã§ã³ã®æ¯æãã®éãé»åæžç±ã¯ãé»åã«éä¿¡ãããŸã-éµäŸ¿ç©ã