ã°ããŒãã«ã«åæ£ããã¢ããªã±ãŒã·ã§ã³ã«ããããã€ã¯ããµãŒãã¹éä¿¡ã管çããããã®ãAPIã²ãŒããŠã§ã€ã®ã¢ãŒããã¯ãã£ãå©ç¹ãå®è£ æŠç¥ããã¹ããã©ã¯ãã£ã¹ã解説ããŸãã
APIã²ãŒããŠã§ã€ïŒã°ããŒãã«ãªã¹ã±ãŒã©ããªãã£ã®ããã®ãã€ã¯ããµãŒãã¹éä¿¡ã®éäžç®¡ç
仿¥ã®è€éãªãœãããŠã§ã¢ç°å¢ã«ãããŠããã€ã¯ããµãŒãã¹ã¢ãŒããã¯ãã£ã¯ãã¹ã±ãŒã©ãã«ã§å埩åããããä¿å®æ§ã®é«ãã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ããããã®äžè¬çãªã¢ãããŒããšããŠæµ®äžããŠããŸãããããããã€ã¯ããµãŒãã¹ã®åæ£åã®æ§è³ªã¯ãç¹ã«ãããã®éã®éä¿¡ã管çããäžã§ãç¹æã®èª²é¡ãæç€ºããŸããããã§APIã²ãŒããŠã§ã€ãç»å Žããäžå¿çãªãšã³ããªãŒãã€ã³ããšããŠæ©èœããåºç€ãšãªããã€ã¯ããµãŒãã¹ãžã®ãã¹ãŠã®åä¿¡ãªã¯ãšã¹ãã管çããŸãããã®èšäºã§ã¯ããã€ã¯ããµãŒãã¹ã¢ãŒããã¯ãã£ã«ãããAPIã²ãŒããŠã§ã€ã®åœ¹å²ããã®å©ç¹ãå®è£ æŠç¥ããããŠã°ããŒãã«ãªã¹ã±ãŒã©ããªãã£ãéæããããã®ãã¹ããã©ã¯ãã£ã¹ãæ¢ããŸãã
ãã€ã¯ããµãŒãã¹ã¢ãŒããã¯ãã£ã®çè§£
APIã²ãŒããŠã§ã€ã«æ·±ãå ¥ãåã«ããã€ã¯ããµãŒãã¹ã¢ãŒããã¯ãã£ã®åºæ¬ååãçè§£ããããšãäžå¯æ¬ ã§ãããã€ã¯ããµãŒãã¹ã¯ãã¢ããªã±ãŒã·ã§ã³ãå°ãããç¬ç«ããççµåãªãµãŒãã¹ã®éåãšããŠæ§æãããèšèšã¢ãããŒãã§ããåãµãŒãã¹ã¯ç¹å®ã®ããžãã¹èœåã«è²¬ä»»ãæã¡ãç¬ç«ããŠéçºããããã€ãã¹ã±ãŒãªã³ã°ãå¯èœã§ãããã®ã¢ãããŒãã«ã¯ããã€ãã®å©ç¹ããããŸãïŒ
- ã¹ã±ãŒã©ããªãã£ã®åäžïŒ åã ã®ãµãŒãã¹ã¯ããã®ç¹å®ã®ããŒãºã«åºã¥ããŠç¬ç«ããŠã¹ã±ãŒãªã³ã°ã§ããŸãã
- å埩åã®åäžïŒ 1ã€ã®ãµãŒãã¹ã®é害ãä»ã®ãµãŒãã¹ã®å¯çšæ§ã«åœ±é¿ãäžããŸããã
- éçºãµã€ã¯ã«ã®é«éåïŒ ããå°ããªã³ãŒãããŒã¹ãšç¬ç«ãããããã€ã«ãããéçºãšãªãªãŒã¹ã®ãµã€ã¯ã«ãéããªããŸãã
- æè¡ã®å€æ§æ§ïŒ ç°ãªããµãŒãã¹ãç°ãªãæè¡ã§æ§ç¯ã§ããããŒã ã¯ä»äºã«æé©ãªããŒã«ãéžæã§ããŸãã
- ã¡ã³ããã³ã¹ã®å®¹æãïŒ å°ãããçŠç¹ãçµããããµãŒãã¹ã¯ãçè§£ããããã°ãä¿å®ã容æã§ãã
ãããããã€ã¯ããµãŒãã¹ã¯è€éãããããããŸãã1ã€ã®ã¢ããªã±ãŒã·ã§ã³ãå¥ã®ã¢ããªã±ãŒã·ã§ã³ãšéä¿¡ãã代ããã«ãå€ãã®ãã€ã¯ããµãŒãã¹ãäºãã«éä¿¡ããå¿ èŠãããïŒãµãŒãã¹ééä¿¡ïŒãå€éšã¯ã©ã€ã¢ã³ãããããã®ãµãŒãã¹ãšéä¿¡ããå¿ èŠããããŸãããã¹ãŠã®ãã€ã¯ããµãŒãã¹ãå€éšã¯ã©ã€ã¢ã³ãã«çŽæ¥å ¬éãããšã以äžã®ãããªåé¡ãçããå¯èœæ§ããããŸãïŒ
- è€éæ§ã®å¢å€§ïŒ ã¯ã©ã€ã¢ã³ãã¯åãã€ã¯ããµãŒãã¹ã®å Žæãç¥ãããµãŒãã¹ãã£ã¹ã«ããªãè² è·åæ£ãé害å埩ãåŠçããå¿ èŠããããŸãã
- ã»ãã¥ãªãã£ãªã¹ã¯ïŒ ãã¹ãŠã®ãã€ã¯ããµãŒãã¹ãå ¬éãããšãæ»æå¯Ÿè±¡é åãå¢å ããã»ãã¥ãªãã£ããªã·ãŒã®é©çšãé£ãããªããŸãã
- å¯çµåïŒ ã¯ã©ã€ã¢ã³ããåºç€ãšãªããã€ã¯ããµãŒãã¹ãšå¯çµåã«ãªããã·ã¹ãã ã®é²åãå°é£ã«ãªããŸãã
ããã§APIã²ãŒããŠã§ã€ããã®ç䟡ãçºæ®ããã¯ã©ã€ã¢ã³ããšãã€ã¯ããµãŒãã¹ã®äžé圹ãšããŠæ©èœããŸãã
APIã²ãŒããŠã§ã€ã®åœ¹å²
APIã²ãŒããŠã§ã€ã¯ããã¹ãŠã®ã¯ã©ã€ã¢ã³ããªã¯ãšã¹ãã«å¯Ÿããåäžã®ãšã³ããªãŒãã€ã³ããšããŠæ©èœããåºç€ãšãªããã€ã¯ããµãŒãã¹ãžã®çµ±äžãããã€ã³ã¿ãŒãã§ãŒã¹ãæäŸããŸããããã«ã¯ã以äžã®ãããªæ§ã ãªã¿ã¹ã¯ãå«ãŸããŸãïŒ
- ãªã¯ãšã¹ãã«ãŒãã£ã³ã°ïŒ ãªã¯ãšã¹ãã®ãã¹ãããããŒããã®ä»ã®åºæºã«åºã¥ããŠãåä¿¡ãªã¯ãšã¹ããé©åãªãã€ã¯ããµãŒãã¹ã«ã«ãŒãã£ã³ã°ããŸãã
- èªèšŒãšèªå¯ïŒ ã¯ã©ã€ã¢ã³ããèªèšŒããç¹å®ã®ãªãœãŒã¹ãžã®ã¢ã¯ã»ã¹ãèªå¯ããŸãã
- ã¬ãŒãå¶éïŒ ç¹å®ã®æéå ã«ã¯ã©ã€ã¢ã³ãããã®ãªã¯ãšã¹ãæ°ãå¶éããããšã§ãä¹±çšãé²ããŸãã
- ãªã¯ãšã¹ãå€æïŒ åä¿¡ãªã¯ãšã¹ãããã€ã¯ããµãŒãã¹ãçè§£ã§ãã圢åŒã«å€æããŸãã
- ã¬ã¹ãã³ã¹éçŽïŒ è€æ°ã®ãã€ã¯ããµãŒãã¹ããã®ã¬ã¹ãã³ã¹ããã¯ã©ã€ã¢ã³ãåãã®åäžã®ã¬ã¹ãã³ã¹ã«éçŽããŸãã
- ã¢ãã¿ãªã³ã°ãšãã®ã³ã°ïŒ ã·ã¹ãã ã®ããã©ãŒãã³ã¹ãšå¥å šæ§ãç£èŠããããã®ã¡ããªã¯ã¹ãšãã°ãåéããŸãã
- ãã£ãã·ã³ã°ïŒ ã¬ã¹ãã³ã¹ããã£ãã·ã¥ããŠããã©ãŒãã³ã¹ãåäžããããã€ã¯ããµãŒãã¹ãžã®è² è·ã軜æžããŸãã
ãããã®æ©èœãäžå åããããšã§ãAPIã²ãŒããŠã§ã€ã¯ã¯ã©ã€ã¢ã³ãã®ã€ã³ã¿ã©ã¯ã·ã§ã³ãç°¡çŽ åãããã€ã¯ããµãŒãã¹ãæ¬æ¥ã®ããžãã¹ããžãã¯ã«éäžã§ããããã«ããŸãã
APIã²ãŒããŠã§ã€ã䜿çšããã¡ãªãã
ãã€ã¯ããµãŒãã¹ã¢ãŒããã¯ãã£ã«APIã²ãŒããŠã§ã€ãå°å ¥ããããšã«ã¯ãæ°å€ãã®ã¡ãªããããããŸãïŒ
- ã¯ã©ã€ã¢ã³ãã€ã³ã¿ã©ã¯ã·ã§ã³ã®ç°¡çŽ åïŒ ã¯ã©ã€ã¢ã³ãã¯åäžã®ãšã³ããã€ã³ããšããåããããããçµ±åããã»ã¹ãç°¡çŽ åãããè€éãã軜æžãããŸãã
- ã»ãã¥ãªãã£ã®åäžïŒ äžå åãããèªèšŒã»èªå¯ããªã·ãŒã«ãããã»ãã¥ãªãã£ã匷åãããæ»æå¯Ÿè±¡é åãæžå°ããŸãã
- ããã©ãŒãã³ã¹ã®åŒ·åïŒ ãã£ãã·ã³ã°ãè² è·åæ£ããªã¯ãšã¹ã倿ã«ãããããã©ãŒãã³ã¹ãæé©åãããã¬ã€ãã³ã·ãåæžãããŸãã
- ã¹ã±ãŒã©ããªãã£ã®åäžïŒ APIã²ãŒããŠã§ã€ã¯ãå¢å ãããã©ãã£ãã¯ã«å¯Ÿå¿ããããã«ç¬ç«ããŠã¹ã±ãŒãªã³ã°ã§ããŸãã
- ççµåïŒ ã¯ã©ã€ã¢ã³ãã¯åºç€ãšãªããã€ã¯ããµãŒãã¹ããåé¢ãããç¬ç«ããé²åãšãããã€ãå¯èœã«ãªããŸãã
- äžå åãããã¢ãã¿ãªã³ã°ãšãã®ã³ã°ïŒ ãã¹ãŠã®APIãã©ãã£ãã¯ãç£èŠããã³ãã°èšé²ããããã®åäžã®ãã€ã³ããæäŸãããã©ãã«ã·ã¥ãŒãã£ã³ã°ãšããã©ãŒãã³ã¹åæãç°¡çŽ åããŸãã
- APIããŒãžã§ãã³ã°ïŒ è€æ°ã®ããŒãžã§ã³ã®APIããµããŒãããã·ãŒã ã¬ã¹ãªç§»è¡ãšäžäœäºææ§ãå¯èœã«ããŸãã
APIã²ãŒããŠã§ã€ã®å®è£ æŠç¥
APIã²ãŒããŠã§ã€ãå®è£ ããã«ã¯ãããã€ãã®ã¢ãããŒãããããŸãïŒ
1. ã«ã¹ã¿ã ãã«ãAPIã²ãŒããŠã§ã€
ã«ã¹ã¿ã APIã²ãŒããŠã§ã€ãæ§ç¯ãããšããã®æ©èœã«å¯Ÿããæå€§éã®æè»æ§ãšå¶åŸ¡ãåŸãããŸãããã®ã¢ãããŒãã¯ãç¹å®ã®èŠä»¶ãè€éãªãŠãŒã¹ã±ãŒã¹ãæã€çµç¹ã«é©ããŠããŸãããã ããå€å€§ãªéçºåŽåãšç¶ç¶çãªã¡ã³ããã³ã¹ãå¿ èŠã§ãã
äŸïŒ ç¬èªã®ã»ãã¥ãªãã£ãšããã©ãŒãã³ã¹èŠä»¶ãæã€å€§æEã³ããŒã¹äŒæ¥ã¯ãSpring Cloud GatewayãNetflix Zuulã®ãããªãã¬ãŒã ã¯ãŒã¯ã䜿çšããŠã«ã¹ã¿ã APIã²ãŒããŠã§ã€ãæ§ç¯ããããšãéžæãããããããŸããã
2. ãªãŒãã³ãœãŒã¹APIã²ãŒããŠã§ã€
ãªãŒãã³ãœãŒã¹ã®APIã²ãŒããŠã§ã€ã¯ãæè»æ§ãšäœ¿ããããã®ãã©ã³ã¹ãæäŸããŸãããããã®ã²ãŒããŠã§ã€ã¯å¹ åºãæ©èœãæäŸããç¹å®ã®ããŒãºã«åãããŠã«ã¹ã¿ãã€ãºã§ããŸãã人æ°ã®ãªãŒãã³ãœãŒã¹APIã²ãŒããŠã§ã€ã«ã¯ä»¥äžã®ãããªãã®ããããŸãïŒ
- KongïŒ Nginxäžã«æ§ç¯ããããé«ãã¹ã±ãŒã©ããªãã£ãšæ¡åŒµæ§ãæã€APIã²ãŒããŠã§ã€ã
- TykïŒ ããã©ãŒãã³ã¹ãšã»ãã¥ãªãã£ã«éç¹ã眮ãããªãŒãã³ãœãŒã¹ã®APIã²ãŒããŠã§ã€ã
- Ocelot (.NET)ïŒ .NETã¢ããªã±ãŒã·ã§ã³åãã®è»œéãªAPIã²ãŒããŠã§ã€ã
- TraefikïŒ ãã€ã¯ããµãŒãã¹åãã«èšèšãããææ°ã®HTTPãªããŒã¹ãããã·ããã³ããŒããã©ã³ãµãŒã
äŸïŒ æ°ãããã€ã¯ããµãŒãã¹ã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ããã¹ã¿ãŒãã¢ããã¯ããã®äœ¿ãããããšè±å¯ãªæ©èœã»ããããKongãTykãéžæãããããããŸããã
3. ã¯ã©ãŠãããŒã¹APIã²ãŒããŠã§ã€
ã¯ã©ãŠããããã€ããŒã¯ããããã€ãšç®¡çãç°¡çŽ åãããããŒãžãAPIã²ãŒããŠã§ã€ãµãŒãã¹ãæäŸããŠããŸãããããã®ãµãŒãã¹ã¯ãèªåã¹ã±ãŒãªã³ã°ãã»ãã¥ãªãã£ãã¢ãã¿ãªã³ã°ãªã©ã®æ©èœãæäŸããŸãã人æ°ã®ã¯ã©ãŠãããŒã¹APIã²ãŒããŠã§ã€ã«ã¯ä»¥äžã®ãããªãã®ããããŸãïŒ
- Amazon API GatewayïŒ ããããèŠæš¡ã§APIã®äœæãå ¬éãç¶æãç£èŠãä¿è·ã容æã«ãããã«ãããŒãžããµãŒãã¹ã
- Azure API ManagementïŒ APIåãã®ãã€ããªããããã«ãã¯ã©ãŠã管çãã©ãããã©ãŒã ã
- Google Cloud ApigeeïŒ APIã®éçºãšç®¡çã®ããã®å æ¬çãªãã©ãããã©ãŒã ã
äŸïŒ ã¢ããªã±ãŒã·ã§ã³ãã¯ã©ãŠãã«ç§»è¡ããå€§äŒæ¥ã¯ãä»ã®ã¯ã©ãŠããµãŒãã¹ãšã®ã·ãŒã ã¬ã¹ãªçµ±åãšç®¡çã®ç°¡çŽ åãããAmazon API GatewayãAzure API ManagementãéžæãããããããŸããã
APIã²ãŒããŠã§ã€ãéžæããéã®äž»ãªèæ ®äºé
APIã²ãŒããŠã§ã€ãéžæããéã¯ã以äžã®èŠçŽ ãèæ ®ããŠãã ããïŒ
- ã¹ã±ãŒã©ããªãã£ïŒ ã²ãŒããŠã§ã€ã¯ãããã©ãŒãã³ã¹ãäœäžãããããšãªãå¢å ãããã©ãã£ãã¯ãåŠçã§ããå¿ èŠããããŸãã
- ããã©ãŒãã³ã¹ïŒ ã²ãŒããŠã§ã€ã¯ãæå°éã®ã¬ã€ãã³ã·ãå°å ¥ããããã©ãŒãã³ã¹ãæé©åããå¿ èŠããããŸãã
- ã»ãã¥ãªãã£ïŒ ã²ãŒããŠã§ã€ã¯ãèªèšŒãèªå¯ãã¬ãŒãå¶éãå«ãå ç¢ãªã»ãã¥ãªãã£æ©èœãæäŸããå¿ èŠããããŸãã
- æè»æ§ïŒ ã²ãŒããŠã§ã€ã¯ãç¹å®ã®èŠä»¶ãæºããããã«ã«ã¹ã¿ãã€ãºå¯èœã§ããå¿ èŠããããŸãã
- 䜿ããããïŒ ã²ãŒããŠã§ã€ã¯ããããã€ãèšå®ã管çã容æã§ããå¿ èŠããããŸãã
- ã¢ãã¿ãªã³ã°ãšãã®ã³ã°ïŒ ã²ãŒããŠã§ã€ã¯ãå æ¬çãªã¢ãã¿ãªã³ã°ããã³ãã®ã³ã°æ©èœãæäŸããå¿ èŠããããŸãã
- çµ±åïŒ ã²ãŒããŠã§ã€ã¯ãä»ã®ã·ã¹ãã ããµãŒãã¹ãšã·ãŒã ã¬ã¹ã«çµ±åã§ããå¿ èŠããããŸãã
- ã³ã¹ãïŒ éçºããããã€ãã¡ã³ããã³ã¹ãå«ãç·ææã³ã¹ããèæ ®ããå¿ èŠããããŸãã
APIã²ãŒããŠã§ã€ã®ãã¿ãŒã³
ã¢ããªã±ãŒã·ã§ã³ã®ç¹å®ã®ããŒãºã«åºã¥ããŠãããã€ãã®APIã²ãŒããŠã§ã€ãã¿ãŒã³ãé©çšã§ããŸãïŒ
1. ããã¯ãšã³ãã»ãã©ãŒã»ããã³ããšã³ãïŒBFFïŒ
BFFãã¿ãŒã³ã¯ãåã¯ã©ã€ã¢ã³ãã¢ããªã±ãŒã·ã§ã³ïŒäŸïŒãŠã§ããã¢ãã€ã«ãã¿ãã¬ããïŒããšã«åå¥ã®APIã²ãŒããŠã§ã€ãäœæããããšãå«ã¿ãŸããåBFFã¯ã¯ã©ã€ã¢ã³ãã®ç¹å®ã®ããŒãºã«åãããŠèª¿æŽãããããã©ãŒãã³ã¹ãšãŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ãæé©åããŸããããã¯ãç°ãªãã¯ã©ã€ã¢ã³ãã¿ã€ããå€§å¹ ã«ç°ãªãããŒã¿ãéçŽãå¿ èŠãšããå Žåã«ç¹ã«åœ¹ç«ã¡ãŸããäŸãã°ãã¢ãã€ã«ã¢ããªã±ãŒã·ã§ã³ã¯ããããã¯ãŒã¯ãªã¯ãšã¹ããæå°éã«æããããããªãŒå¯¿åœãæé©åããæ¹æ³ã§ããŒã¿ãéçŽããBFFã®æ©æµãåãããããããŸããã
2. ã¢ã°ãªã²ãŒã·ã§ã³ïŒéçŽïŒ
APIã²ãŒããŠã§ã€ã¯ãè€æ°ã®ãã€ã¯ããµãŒãã¹ããã®ã¬ã¹ãã³ã¹ãã¯ã©ã€ã¢ã³ãåãã®åäžã®ã¬ã¹ãã³ã¹ã«éçŽããŸããããã«ãããã¯ã©ã€ã¢ã³ããè¡ãå¿ èŠããããªã¯ãšã¹ãã®æ°ãæžããçµ±åããã»ã¹ãç°¡çŽ åãããŸããEã³ããŒã¹ã¢ããªã±ãŒã·ã§ã³ã®è£œå詳现ããŒãžãèããŠã¿ãŸãããã補å詳现ãã¬ãã¥ãŒãåšåº«ãé¢é£è£œåã¯ãå¥ã ã®ãã€ã¯ããµãŒãã¹ã«ãã£ãŠç®¡çãããŠãããããããŸãããAPIã²ãŒããŠã§ã€ã¯ããããã®ãµãŒãã¹ããã®ã¬ã¹ãã³ã¹ã補å詳现ããŒãžåãã®åäžã®ã¬ã¹ãã³ã¹ã«éçŽã§ããŸãã
3. ã³ã³ããžã·ã§ã³ïŒæ§æïŒ
APIã²ãŒããŠã§ã€ã¯ãåäžã®ãªã¯ãšã¹ããæºããããã«è€æ°ã®ãã€ã¯ããµãŒãã¹éã®çžäºäœçšã調æŽïŒãªãŒã±ã¹ãã¬ãŒã·ã§ã³ïŒããŸããããã«ãããã¯ã©ã€ã¢ã³ããè€æ°ã®ãµãŒãã¹ãšçŽæ¥ããåãããããšãªããè€éãªããžãã¹ããžãã¯ãå®è£ ã§ããŸããæ¯æãåŠçã¯ãŒã¯ãããŒãæ³åããŠã¿ãŠãã ãããAPIã²ãŒããŠã§ã€ã¯ãæ¯æããµãŒãã¹ã泚æãµãŒãã¹ãéç¥ãµãŒãã¹éã®çžäºäœçšã調æŽããŠãæ¯æãããã»ã¹ãå®äºããããããããŸããã
4. ãããã·
APIã²ãŒããŠã§ã€ã¯åçŽãªãªããŒã¹ãããã·ãšããŠæ©èœãã倧ããªå€æãéçŽãè¡ããã«ãªã¯ãšã¹ããé©åãªãã€ã¯ããµãŒãã¹ã«è»¢éããŸãããã®ãã¿ãŒã³ã¯ãæå°éã®åŠçããå¿ èŠãšããªãåçŽãªãŠãŒã¹ã±ãŒã¹ã«é©ããŠããŸããããã¯ãã¢ããªã·ãã¯ãªã¢ããªã±ãŒã·ã§ã³ããã€ã¯ããµãŒãã¹ã«æåã«ç§»è¡ããéã«ãã䜿çšãããŸããã¢ããªã¹ãåŸã ã«åè§£ãããéãAPIã²ãŒããŠã§ã€ã¯åäžã®ãšã³ããªãŒãã€ã³ããšããŠæ©èœããŸãã
APIã²ãŒããŠã§ã€å®è£ ã®ãã¹ããã©ã¯ãã£ã¹
APIã²ãŒããŠã§ã€ã®å®è£ ãæåãããããã«ã¯ã以äžã®ãã¹ããã©ã¯ãã£ã¹ã«åŸã£ãŠãã ããïŒ
- é©åãªããŒã«ã®éžæïŒ ç¹å®ã®èŠä»¶ãšäºç®ã«åã£ãAPIã²ãŒããŠã§ã€ãéžæããŸãã
- ã¹ã±ãŒã©ããªãã£ãèæ ®ããèšèšïŒ å¢å ãããã©ãã£ãã¯ãšå°æ¥ã®æé·ã«å¯Ÿå¿ã§ããããã«APIã²ãŒããŠã§ã€ãèšèšããŸãã
- å ç¢ãªã»ãã¥ãªãã£ã®å®è£ ïŒ åŒ·åãªèªèšŒãèªå¯ãã¬ãŒãå¶éããªã·ãŒãå®è£ ããŸãã
- ããã©ãŒãã³ã¹ã®ç£èŠïŒ APIã²ãŒããŠã§ã€ã®ããã©ãŒãã³ã¹ãç¶ç¶çã«ç£èŠããæé©åã®äœå°ãããé åãç¹å®ããŸãã
- ãããã€ã®èªååïŒ APIã²ãŒããŠã§ã€ã®ãããã€ãšèšå®ãèªååããŸãã
- APIããŒãžã§ãã³ã°ã®äœ¿çšïŒ ã·ãŒã ã¬ã¹ãªç§»è¡ãšäžäœäºææ§ãå¯èœã«ããããã«APIããŒãžã§ãã³ã°ãå®è£ ããŸãã
- èšå®ã®äžå åïŒ ç®¡çãç°¡çŽ åããäžè²«æ§ã確ä¿ããããã«APIã²ãŒããŠã§ã€ã®èšå®ãäžå åããŸãã
- æç¢ºãªAPIå¥çŽã®å®çŸ©ïŒ ã¯ã©ã€ã¢ã³ããšãã€ã¯ããµãŒãã¹éã®çžäºéçšæ§ã確ä¿ããããã«ãæç¢ºãªAPIå¥çŽã確ç«ããŸãã
- ãµãŒããããã¬ãŒã«ãŒã®å®è£ ïŒ é£éçãªé害ãé²ããå埩åãåäžãããããã«ãµãŒããããã¬ãŒã«ãŒã䜿çšããŸãã
- 忣ãã¬ãŒã·ã³ã°ã®äœ¿çšïŒ è€æ°ã®ãã€ã¯ããµãŒãã¹ã«ãŸããããªã¯ãšã¹ãã远跡ããããã©ãŒãã³ã¹ã®ããã«ããã¯ãç¹å®ããããã«åæ£ãã¬ãŒã·ã³ã°ãå®è£ ããŸããJaegerãZipkinã®ãããªããŒã«ãããã§åœ¹ç«ã¡ãŸãã
APIã²ãŒããŠã§ã€ã®ã»ãã¥ãªãã£ä¿è·
APIã²ãŒããŠã§ã€ã®ã»ãã¥ãªãã£ä¿è·ã¯æéèŠã§ãã以äžã«ããã€ãã®éèŠãªã»ãã¥ãªãã£èæ ®äºé ã瀺ããŸãïŒ
- èªèšŒïŒ APIããŒãJWTïŒJSON Web TokensïŒããŸãã¯OAuth 2.0ãªã©ã®ã¡ã«ããºã ã䜿çšããŠã¯ã©ã€ã¢ã³ãã®èº«å ã確èªããŸãã
- èªå¯ïŒ ãŠãŒã¶ãŒã®åœ¹å²ãæš©éã«åºã¥ããŠç¹å®ã®ãªãœãŒã¹ãžã®ã¢ã¯ã»ã¹ãå¶åŸ¡ããŸãã
- ã¬ãŒãå¶éïŒ ç¹å®ã®æéå ã«ã¯ã©ã€ã¢ã³ãããã®ãªã¯ãšã¹ãæ°ãå¶éããããšã§ãä¹±çšãé²ããŸãã
- å ¥åæ€èšŒïŒ ã€ã³ãžã§ã¯ã·ã§ã³æ»æãé²ãããã«ããã¹ãŠã®åä¿¡ãªã¯ãšã¹ããæ€èšŒããŸãã
- æå·åïŒ HTTPSã䜿çšããŠã¯ã©ã€ã¢ã³ããšAPIã²ãŒããŠã§ã€éã®ãã¹ãŠã®éä¿¡ãæå·åããŸãã
- ãŠã§ãã¢ããªã±ãŒã·ã§ã³ãã¡ã€ã¢ãŠã©ãŒã«ïŒWAFïŒïŒ äžè¬çãªãŠã§ãæ»æããä¿è·ããããã«WAFãå°å ¥ããŸãã
- 宿çãªã»ãã¥ãªãã£ç£æ»ïŒ è匱æ§ãç¹å®ãã察åŠããããã«å®æçãªã»ãã¥ãªãã£ç£æ»ã宿œããŸãã
APIã²ãŒããŠã§ã€ã«é¢ããã°ããŒãã«ãªèæ ®äºé
ã°ããŒãã«ã¢ããªã±ãŒã·ã§ã³åãã«APIã²ãŒããŠã§ã€ãèšèšããéãããã€ãã®èŠçŽ ãéèŠã«ãªããŸãïŒ
- å°ççåæ£ïŒ äžçäžã®ãŠãŒã¶ãŒã®ã¬ã€ãã³ã·ãæå°éã«æããããã«ãè€æ°ã®å°åã«APIã²ãŒããŠã§ã€ããããã€ããŸããã³ã³ãã³ãé ä¿¡ãããã¯ãŒã¯ïŒCDNïŒãå©çšããŠã¬ã¹ãã³ã¹ããã£ãã·ã¥ããã¬ã€ãã³ã·ãããã«åæžããŸããå°åããšã®ããŒã¿æåšå°ã®èŠä»¶ãèæ ®ããŸãã
- ããŒã«ãªãŒãŒã·ã§ã³ïŒ è€æ°ã®èšèªãšæåã»ããããµããŒãããŸãããšã©ãŒã¡ãã»ãŒãžããã®ä»ã®ã¬ã¹ãã³ã¹ãããŒã«ã©ã€ãºãããŠããããšã確èªããŸãã
- ã¿ã€ã ãŸãŒã³ïŒ ã¿ã€ã ãŸãŒã³ã®å€æãæ£ããåŠçããŸãããã¹ãŠã®æ¥ä»ãšæå»ãUTCã§ä¿åããå¿ èŠã«å¿ããŠãŠãŒã¶ãŒã®ããŒã«ã«ã¿ã€ã ãŸãŒã³ã«å€æããŸãã
- éè²šïŒ è€æ°ã®é貚ããµããŒãããŸããéè²šå€æãµãŒãã¹ãæäŸããŸãã
- ã³ã³ãã©ã€ã¢ã³ã¹ïŒ GDPRãCCPAãªã©ã®é¢é£ããããŒã¿ãã©ã€ãã·ãŒèŠå¶ã«æºæ ããŸãããããã€å°åãéžæããéã«ã¯ãããŒã¿äž»æš©ã®èŠä»¶ãèæ ®ããŸãã
- ã¢ãã¿ãªã³ã°ïŒ ç°ãªãå°åã§ã®APIã²ãŒããŠã§ã€ã®ããã©ãŒãã³ã¹ãšå¯çšæ§ã远跡ããããã«ã°ããŒãã«ã¢ãã¿ãªã³ã°ãå®è£ ããŸããåé¡ãçºçããå Žåã«éç¥ããã¢ã©ãŒããèšå®ããŸãã
ã¢ãã¿ãªã³ã°ãšãã®ã³ã°
广çãªã¢ãã¿ãªã³ã°ãšãã®ã³ã°ã¯ãAPIã²ãŒããŠã§ã€ãšåºç€ãšãªããã€ã¯ããµãŒãã¹ã®ããã©ãŒãã³ã¹ãšå¥å šæ§ãçè§£ããããã«äžå¯æ¬ ã§ããç£èŠãã¹ãäž»èŠãªã¡ããªã¯ã¹ã«ã¯ä»¥äžãå«ãŸããŸãïŒ
- ãªã¯ãšã¹ãã¬ã€ãã³ã·ïŒ ãªã¯ãšã¹ãã®åŠçã«ãããæéã
- ãšã©ãŒã¬ãŒãïŒ ãšã©ãŒã«ãªããªã¯ãšã¹ãã®å²åã
- ã¹ã«ãŒãããïŒ 1ç§ãããã«åŠçããããªã¯ãšã¹ãã®æ°ã
- ãªãœãŒã¹äœ¿çšçïŒ APIã²ãŒããŠã§ã€ã®CPUãã¡ã¢ãªããããã¯ãŒã¯äœ¿çšçã
- APIããŒã®äœ¿çšç¶æ³ïŒ åAPIããŒã®äœ¿çšãã¿ãŒã³ã远跡ããæœåšçãªä¹±çšãèšå®ãã¹ãç¹å®ããŸãã
ãã°ã«ã¯ããªã¯ãšã¹ããã¬ã¹ãã³ã¹ããšã©ãŒãã»ãã¥ãªãã£ã€ãã³ãã«é¢ããæ å ±ãå«ããå¿ èŠããããŸããã·ã¹ãã ã®ãã¹ãŠã®ã³ã³ããŒãã³ããããã°ãåéã»åæããããã«ãäžå åããããã®ã³ã°ã·ã¹ãã ã®äœ¿çšãæ€èšããŠãã ãããElasticsearchãKibanaãGrafanaã®ãããªããŒã«ã¯ãã¢ãã¿ãªã³ã°ããŒã¿ã®å¯èŠåãšåæã«äœ¿çšã§ããŸãã
APIã²ãŒããŠã§ã€ãšãµãŒããŒã¬ã¹ã¢ãŒããã¯ãã£
APIã²ãŒããŠã§ã€ã¯ããµãŒããŒã¬ã¹ã¢ãŒããã¯ãã£ã§ãéåžžã«åœ¹ç«ã¡ãŸããå€ãã®ã¯ã©ãŠããããã€ããŒã¯ãAWS LambdaãAzure FunctionsãGoogle Cloud Functionsã®ãããªãµãŒããŒã¬ã¹ã³ã³ãã¥ãŒãã£ã³ã°ãªãã·ã§ã³ãæäŸããŠããŸãããããã®é¢æ°ã¯ãã°ãã°APIã²ãŒããŠã§ã€çµç±ã§å ¬éãããã³ã¹ãå¹çãé«ãã¹ã±ãŒã©ãã«ãªAPIæ§ç¯æ¹æ³ãæäŸããŸãããã®ã·ããªãªã§ã¯ãAPIã²ãŒããŠã§ã€ãèªèšŒãèªå¯ããªã¯ãšã¹ãã«ãŒãã£ã³ã°ããã®ä»ã®äžè¬çãªã¿ã¹ã¯ãåŠçãããµãŒããŒã¬ã¹é¢æ°ãããžãã¹ããžãã¯ãå®è£ ããŸãã
APIã²ãŒããŠã§ã€ã®äžè¬çãªèª²é¡
å€ãã®å©ç¹ãããäžæ¹ã§ãAPIã²ãŒããŠã§ã€ã«ã¯èª²é¡ããããŸãïŒ
- è€éæ§ïŒ APIã²ãŒããŠã§ã€ã®å®è£ ãšç®¡çã¯ãç¹ã«å€§èŠæš¡ã§è€éãªãã€ã¯ããµãŒãã¹ã¢ãŒããã¯ãã£ã§ã¯è€éã«ãªãå¯èœæ§ããããŸãã
- ããã©ãŒãã³ã¹ã®ããã«ããã¯ïŒ é©åã«èšèšã»ã¹ã±ãŒãªã³ã°ãããŠããªãå ŽåãAPIã²ãŒããŠã§ã€ãããã©ãŒãã³ã¹ã®ããã«ããã¯ã«ãªãå¯èœæ§ããããŸãã
- åäžé害ç¹ïŒ é«å¯çšæ§ã念é ã«çœ®ããŠå®è£ ãããŠããªãå ŽåãAPIã²ãŒããŠã§ã€ãåäžé害ç¹ã«ãªãå¯èœæ§ããããŸãã
- èšå®ç®¡çïŒ ç¹ã«åçãªç°å¢ã§ã¯ãAPIã²ãŒããŠã§ã€ã®èšå®ç®¡çãå°é£ã«ãªãããšããããŸãã
- ã»ãã¥ãªãã£ãªã¹ã¯ïŒ äžååã«ä¿è·ãããAPIã²ãŒããŠã§ã€ã¯ãã·ã¹ãã å šäœãã»ãã¥ãªãã£ãªã¹ã¯ã«ãããå¯èœæ§ããããŸãã
ãããã®èª²é¡ã軜æžããããã«ã¯ãæ éãªèšç»ãèšèšãå®è£ ãäžå¯æ¬ ã§ãã
APIã²ãŒããŠã§ã€æè¡ã®å°æ¥ã®ãã¬ã³ã
APIã²ãŒããŠã§ã€ãåãå·»ãç°å¢ã¯çµ¶ããé²åããŠããŸããããã€ãã®æ°ããªãã¬ã³ãã«ã¯ä»¥äžã®ãããªãã®ããããŸãïŒ
- ãµãŒãã¹ã¡ãã·ã¥ãšã®çµ±åïŒ IstioãLinkerdã®ãããªãµãŒãã¹ã¡ãã·ã¥ãšã®ããç·å¯ãªçµ±åããµãŒãã¹ã¡ãã·ã¥ã¯ãã€ã¯ããµãŒãã¹éä¿¡ã管çããããã®ã€ã³ãã©ã¹ãã©ã¯ãã£å±€ãæäŸããAPIã²ãŒããŠã§ã€ã¯ãããã®æ©èœã掻çšã§ããŸãã
- GraphQLã®ãµããŒãïŒ ã¯ã©ã€ã¢ã³ããå¿ èŠãªããŒã¿ã®ã¿ããªã¯ãšã¹ãã§ããAPIçšã®ã¯ãšãªèšèªã§ããGraphQLã®ãµããŒãã®å¢å ã
- AIãæŽ»çšããAPI管çïŒ AIãšæ©æ¢°åŠç¿ã䜿çšããŠãAPIã®çºèŠãã»ãã¥ãªãã£åæãããã©ãŒãã³ã¹æé©åãªã©ã®ã¿ã¹ã¯ãèªååããŸãã
- ãšããžã³ã³ãã¥ãŒãã£ã³ã°ïŒ ãããã¯ãŒã¯ã®ãšããžã«è¿ãå Žæã«APIã²ãŒããŠã§ã€ããããã€ãããšããžããã€ã¹ã®ã¬ã€ãã³ã·ãåæžããããã©ãŒãã³ã¹ãåäžãããŸãã
çµè«
APIã²ãŒããŠã§ã€ã¯ãçŸä»£ã®ãã€ã¯ããµãŒãã¹ã¢ãŒããã¯ãã£ã«ãããŠäžå¯æ¬ ãªã³ã³ããŒãã³ãã§ãããäžå åããããšã³ããªãŒãã€ã³ããæäŸããã¯ã©ã€ã¢ã³ããšãã€ã¯ããµãŒãã¹éã®éä¿¡ã管çããŸããAPIã²ãŒããŠã§ã€ãå®è£ ããããšã§ãçµç¹ã¯ã¯ã©ã€ã¢ã³ãã®ã€ã³ã¿ã©ã¯ã·ã§ã³ãç°¡çŽ åããã»ãã¥ãªãã£ãåäžãããããã©ãŒãã³ã¹ã匷åããã¹ã±ãŒã©ããªãã£ãé«ããããšãã§ããŸããé©åãªAPIã²ãŒããŠã§ã€ãœãªã¥ãŒã·ã§ã³ã®éžæããã¹ããã©ã¯ãã£ã¹ã®å®è£ ããããŠããã©ãŒãã³ã¹ã®ç¶ç¶çãªç£èŠã¯ãAPIã²ãŒããŠã§ã€å®è£ ã®æåã«äžå¯æ¬ ã§ããAPIã²ãŒããŠã§ã€ã®ç¶æ³ãé²åãç¶ããäžãæ°ããªãã¬ã³ããæè¡ã«ã€ããŠåžžã«æ å ±ãåŸãããšããã°ããŒãã«ãªãªãŒãã£ãšã³ã¹ã«å¯Ÿå¿ã§ããå ç¢ã§ã¹ã±ãŒã©ãã«ãªãã€ã¯ããµãŒãã¹ã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ããããã«éèŠãšãªããŸãã
ãã®ã¬ã€ãã§æŠèª¬ãããæŠå¿µãšãã¹ããã©ã¯ãã£ã¹ãçè§£ããããšã§ãã°ããŒãã«ã«ã¹ã±ãŒã©ãã«ãªãã€ã¯ããµãŒãã¹ã¢ãŒããã¯ãã£ãæ§ç¯ã»ç®¡çããããã«ãAPIã²ãŒããŠã§ã€ã广çã«æŽ»çšããããšãã§ããŸãã