API (ã¢ããªã±ãŒã·ã§ã³ ããã°ã©ãã³ã° ã€ã³ã¿ãŒãã§ã€ã¹) ãããã³ã«ã¯ãããŸããŸãªãœãããŠã§ã¢ ã·ã¹ãã ãã¢ããªã±ãŒã·ã§ã³ããŸãã¯ã³ã³ããŒãã³ãéã®çžäºäœçšã管çãããäºåã«å®çŸ©ãããã«ãŒã«ãèŠåãããŒã¿æ§é ã®ã»ããã§ããããã¯ãœãããŠã§ã¢ ã·ã¹ãã éã®å¥çŽãšããŠæ©èœããæšæºåãããäžè²«ããéä¿¡ææ®µãæäŸããçžäºéçšæ§ãä¿é²ããããŒã¿ãšæ©èœã亀æã§ããããã«ããŸãã AppMasterã®ã³ã³ããã¹ãã§ã¯ãAPI ãããã³ã«ã¯ãçæãããããã¯ãšã³ããWebãã¢ãã€ã« ã¢ããªã±ãŒã·ã§ã³ãšå€éšãµãŒãã¹ããã³ãã¯ãããžãšã®ã·ãŒã ã¬ã¹ãªçµ±åãããã³ã¢ããªã±ãŒã·ã§ã³èªäœã®ããŸããŸãªã³ã³ããŒãã³ããã¢ãžã¥ãŒã«éã®çžäºäœçšãå¯èœã«ããäžã§éèŠãªåœ¹å²ãæãããŸãã
API ãããã³ã«ã¯éåžžãæœè±¡åãã¢ãžã¥ãŒã«æ§ãé¢å¿äºã®åé¢ã®ååã«åºã¥ããŠèšèšãããŠããŸãããããã¯ã察話ã·ã¹ãã ã®åºç€ãšãªãå®è£ ã®è©³çŽ°ãæœè±¡åããè€éããé ããéçºè ãéèŠãªæ©èœã«éäžã§ããããã«ããé«ã¬ãã«ã®äžè²«ããã€ã³ã¿ãŒãã§ã€ã¹ãå ¬éããŸãããŸãã飿ºããã·ã¹ãã ãæç¢ºã«å®çŸ©ããã責任ãæã¡ããããã³ã«ããŒã¹ã®ã€ã³ã¿ãŒãã§ã€ã¹ãä»ããŠå¯Ÿè©±ããæ§é åãããççµåèšèšã奚å±ããããšã§ãã¢ãžã¥ãŒã«æ§ãšæžå¿µäºé ã®åé¢ãä¿é²ããŸãã
æãåºã䜿çšãã確ç«ãããŠãã API ãããã³ã« ã¿ã€ãã® 1 ã€ã¯ REST (Representational State Transfer) API ãããã³ã«ã§ããããã¯çŸä»£ã® Web éçºã®åºç€ã§ããã AppMasterãã©ãããã©ãŒã ã§åºãå©çšãããŠããŸããããã¯ãURL ã«ãã£ãŠèå¥ãããGETãPOSTãPUTãDELETE ãªã©ã®æšæº HTTP ã¡ãœããã«ãã£ãŠæäœããããªãœãŒã¹ã«å¯Ÿã㊠CRUD (äœæãèªã¿åããæŽæ°ãããã³åé€) æäœãå®è¡ããããã«èšèšãããã¢ãŒããã¯ã㣠ã¹ã¿ã€ã«ã§ããã¹ããŒãã¬ã¹èšèšã«æºæ ããŠããã以åã®ãªã¯ãšã¹ããã¯ã©ã€ã¢ã³ãã®ç¶æ ã«é¢ããä¿åãããæ å ±ã«äŸåããããšãªããã¯ã©ã€ã¢ã³ããããµãŒããŒãžã®åãªã¯ãšã¹ããåå¥ã«çè§£ã§ããããã«ããŸãã
RESTful API ã¯ãã¹ã±ãŒã©ããªãã£ãããã©ãŒãã³ã¹ãã·ã³ãã«ããçµ±åã®å®¹æããªã©ãããã€ãã®éèŠãªå©ç¹ãæäŸããŸãããŠãŒã¶ãŒãããã€ã¹ããµãŒãã¹ãããŒã¿ã®æ°ã®å¢å ã«åãããŠé©åã«æ¡åŒµããåºã忣ãããã¢ãŒããã¯ãã£ãšè² è·åæ£æè¡ããµããŒãããŸãããããã¯ãéçºããã»ã¹ãç°¡çŽ åããçç£æ§ãä¿é²ããéçºè ã®åŠç¿æ²ç·ãççž®ããæšæºåãããçµ±äžã€ã³ã¿ãŒãã§ã€ã¹ãæäŸããŸããããã«ã倿§ãªãã¯ãããžãŒããã©ãããã©ãŒã ãããã°ã©ãã³ã°èšèªã®çµ±åãä¿é²ããéçºè ãæ¢åã®ããŒã«ãã©ã€ãã©ãªããã¹ã ãã©ã¯ãã£ã¹ã掻çšããŠãå ç¢ã§ä¿¡é Œæ§ã®é«ãå®å šãªãœãªã¥ãŒã·ã§ã³ãæ§ç¯ã§ããããã«ããŸãã
ãã 1 ã€ã®éèŠãªã¿ã€ãã® API ãããã³ã«ã¯ WebSocket ã§ããWebSocket ã䜿çšãããšãåäžã®é·æéåç¶ããæ¥ç¶ãä»ããŠã¯ã©ã€ã¢ã³ããšãµãŒããŒéã®åæ¹åéä¿¡ãå¯èœã«ãªããŸãã WebSocket API ã¯ããã£ãã ã·ã¹ãã ããã¥ãŒã¹ ãã£ãŒããéç¥ãããŒã¿ ã¹ããªãŒãã³ã° ãµãŒãã¹ãªã©ã®ãªã¢ã«ã¿ã€ã ã®ã€ãã³ãé§ååã¢ããªã±ãŒã·ã§ã³ãå®è£ ããå Žåã«ç¹ã«åœ¹ç«ã¡ãŸãããããã¯ãåŸæ¥ã®èŠæ±/å¿çããŒã¹ã®ãããã³ã«ã«ä»£ãããããå¹ççã§äœã¬ã€ãã³ã·ãŒã®ä»£æ¿ææ®µãæäŸããè€æ°ã®æ¥ç¶ã®ééã«äŒŽããªãŒããŒããããæé€ããããŒã¿ ãã¬ãŒãã³ã°ãšãã€ã㪠ã¡ãã»ãŒãž ãã©ãŒããããä»ããŠéä¿¡ãããããŒã¿ã®éãæå°éã«æããŸãã
AppMasterçæãããããã¯ãšã³ã ã¢ããªã±ãŒã·ã§ã³ã« REST ãš WebSocket API ãããã³ã«ã®äž¡æ¹ãã·ãŒã ã¬ã¹ã«çµ±åããå¹ åºããŠãŒã¹ã±ãŒã¹ãšèŠä»¶ããµããŒããããããã«äœ¿çšã§ããå æ¬ç㪠API ãæäŸããŸããã¯ã©ã€ã¢ã³ãã¯ãå¿ èŠãªå ¥åãã©ã¡ãŒã¿ãå«ã HTTP ãªã¯ãšã¹ããš WebSocket ã¡ãã»ãŒãžãéä¿¡ããçµæã®ããŒã¿ãå«ãæ§é åããã JSON ã¬ã¹ãã³ã¹ãåä¿¡ããããšã§ API ã«ã¢ã¯ã»ã¹ã§ããŸãããã®ãã©ãããã©ãŒã ã¯ãããžã¥ã¢ã« API ãã¶ã€ããŒãæäŸããŸããããã«ãããéçºè ã¯ããã¹ãŠã³ãŒããèšè¿°ããããšãªããã«ã¹ã¿ã API endpointsãå®çŸ©ããå ¥åºåãã©ã¡ãŒã¿ãŒãæå®ãã察å¿ããããžãã¹ ããžãã¯ãšã¯ãŒã¯ãããŒãèšèšã§ããŸãã
API éä¿¡ã®ã»ãã¥ãªãã£ãšæŽåæ§ã確ä¿ããããã«ã AppMaster ãOAuth 2.0ãJWT (JSON Web Token)ãAPI ããŒãªã©ã®ããŸããŸãªèªèšŒããã³èªå¯ã¡ã«ããºã ããµããŒãããŠããŸãããããã®ã¡ã«ããºã ã¯ãäžæ£ã¢ã¯ã»ã¹ã®é²æ¢ãæ©å¯ããŒã¿ã®ä¿è·ãAPI ãªãœãŒã¹ã®äœ¿çšã®å¶åŸ¡ã«åœ¹ç«ã¡ãæ£åœãªã¯ã©ã€ã¢ã³ããšãŠãŒã¶ãŒã®ã¿ãã·ã¹ãã ãšå¯Ÿè©±ã§ããããã«ããŸãã
ããã«ããã®ãã©ãããã©ãŒã ã¯ãæ¥çæšæºã® OpenAPI (æ§ Swagger) 仿§ã䜿çšããŠãAPI endpointsã®ããã¥ã¡ã³ããèªåçæããŸãããã®ããã¥ã¡ã³ãã«ã¯ã詳现ãªèª¬æããªã¯ãšã¹ã/ã¬ã¹ãã³ã¹ ã¹ããŒããããã³ãµã³ãã« ã³ãŒã ã¹ãããããå«ãŸããŠãããéçºè ã API ã®æ©èœããã©ã¡ãŒã¿ãæ§é ãæç¢ºã«çè§£ãããµãŒãããŒãã£ã®ããŒã«ããµãŒãã¹ã«ããã³ã©ãã¬ãŒã·ã§ã³ããã¹ããAPI ã®å©çšã容æã«ããŸãã
çµè«ãšããŠãAPI ãããã³ã«ã¯ææ°ã®ãœãããŠã§ã¢éçºã®åºæ¬çãªæ§æèŠçŽ ã§ãããããŸããŸãªã·ã¹ãã ããµãŒãã¹éã®æšæºåãããäžè²«ããéä¿¡ææ®µãæäŸããŸãã AppMasterã®åŒ·åãªæ©èœã掻çšããããšã§ãéçºè ã¯æ¥çã®ãã¹ããã©ã¯ãã£ã¹ãšæšæºã«æºæ ããããå質ã§ã¹ã±ãŒã©ãã«ã§å®å šãª API ãç°¡åã«èšèšãå®è£ ããããã€ã§ããæçµçã«ã¢ããªã±ãŒã·ã§ã³éçºããã»ã¹ãå éããçç£æ§ãåäžããã顧客ã«ãœãããŠã§ã¢ ãœãªã¥ãŒã·ã§ã³ãæäŸããŠæåãåããŠããŸãã