APIã²ãŒããŠã§ã€ã®ãªã¯ãšã¹ãã«ãŒãã£ã³ã°ã«é¢ããå æ¬çã¬ã€ããå¹ççã§ã¹ã±ãŒã©ãã«ãªãã€ã¯ããµãŒãã¹ã®ã°ããŒãã«å±éã«åããæŠç¥ããã¿ãŒã³ãèšå®ããã¹ããã©ã¯ãã£ã¹ã解説ããŸãã
APIã²ãŒããŠã§ã€ïŒãã€ã¯ããµãŒãã¹ã¢ãŒããã¯ãã£ã®ããã®ãªã¯ãšã¹ãã«ãŒãã£ã³ã°ããã¹ã¿ãŒãã
ãã€ã¯ããµãŒãã¹ã®äžçã§ã¯ãAPIã²ãŒããŠã§ã€ããã¹ãŠã®ã¯ã©ã€ã¢ã³ããªã¯ãšã¹ãã®åäžãšã³ããªãã€ã³ããšããŠæ©èœããŸãããã®äžæ žãšãªã責åã¯ããããã®ãªã¯ãšã¹ããå¹ççãã€å®å šã«é©åãªããã¯ãšã³ããµãŒãã¹ã«ã«ãŒãã£ã³ã°ããããšã§ãã广çãªãªã¯ãšã¹ãã«ãŒãã£ã³ã°ã¯ããã€ã¯ããµãŒãã¹ã¢ãŒããã¯ãã£ã«ãããŠæé©ãªããã©ãŒãã³ã¹ãã¹ã±ãŒã©ããªãã£ãä¿å®æ§ãéæããããã«äžå¯æ¬ ã§ãããã®å æ¬çãªã¬ã€ãã§ã¯ãAPIã²ãŒããŠã§ã€ã®ãªã¯ãšã¹ãã«ãŒãã£ã³ã°ã®è€éããæãäžããããŸããŸãªæŠç¥ããã¿ãŒã³ãèšå®ãªãã·ã§ã³ããã¹ããã©ã¯ãã£ã¹ã«ã€ããŠè§£èª¬ããŸãã
APIã²ãŒããŠã§ã€ã®ãªã¯ãšã¹ãã«ãŒãã£ã³ã°ãçè§£ãã
ãªã¯ãšã¹ãã«ãŒãã£ã³ã°ãšã¯ãç¹å®ã®åºæºã«åºã¥ããŠåä¿¡ãªã¯ãšã¹ããæ£ããããã¯ãšã³ããµãŒãã¹ã«æ¯ãåããããã»ã¹ã§ãããã®ããã»ã¹ã§ã¯ããªã¯ãšã¹ãïŒäŸïŒHTTPã¡ãœããããã¹ãããããŒãã¯ãšãªãã©ã¡ãŒã¿ïŒãåæããäºåã«å®çŸ©ãããã«ãŒã«ãé©çšããŠã¿ãŒã²ãããµãŒãã¹ã決å®ããŸããAPIã²ãŒããŠã§ã€ã¯ãã°ãã°ãªããŒã¹ãããã·ãšããŠæ©èœããå éšã®ãã€ã¯ããµãŒãã¹ã¢ãŒããã¯ãã£ãå€éšããä¿è·ããŸãã
äž»èŠãªæŠå¿µ
- ã«ãŒãã£ã³ã°ã«ãŒã«ïŒåä¿¡ãªã¯ãšã¹ããšããã¯ãšã³ããµãŒãã¹éã®ãããã³ã°ãå®çŸ©ããŸãããããã®ã«ãŒã«ã¯éåžžãURLãã¹ãHTTPã¡ãœãããããããŒãªã©ã®ãªã¯ãšã¹ã屿§ã«åºã¥ããŠããŸãã
- ãµãŒãã¹ãã£ã¹ã«ããªïŒAPIã²ãŒããŠã§ã€ãããã¯ãšã³ããµãŒãã¹ã®å©çšå¯èœãªã€ã³ã¹ã¿ã³ã¹ãèŠã€ããããã®ã¡ã«ããºã ã§ãããµãŒãã¹ãã£ã¹ã«ããªã¯ããµãŒãã¹ã€ã³ã¹ã¿ã³ã¹ãé »ç¹ã«è¿œå ãŸãã¯åé€ãããåçãªç°å¢ã§äžå¯æ¬ ã§ãã
- è² è·åæ£ïŒåä¿¡ãªã¯ãšã¹ããããã¯ãšã³ããµãŒãã¹ã®è€æ°ã€ã³ã¹ã¿ã³ã¹ã«åæ£ãããéè² è·ãé²ããé«å¯çšæ§ã確ä¿ããŸãã
- ãã©ãã£ãã¯ç®¡çïŒãµãŒãã¹ã®ç°ãªãããŒãžã§ã³ãã€ã³ã¹ã¿ã³ã¹ãžã®ãã©ãã£ãã¯ãããŒãå¶åŸ¡ããã«ããªã¢ãããã€ã¡ã³ããA/Bãã¹ããå¯èœã«ããŸãã
- ã»ãã¥ãªãã£ïŒèªèšŒããã³èªå¯ã¡ã«ããºã ã«ãããèªå¯ãããã¯ã©ã€ã¢ã³ãã®ã¿ãä¿è·ããããµãŒãã¹ã«ã¢ã¯ã»ã¹ã§ããããã«ããŸãã
ãªã¯ãšã¹ãã«ãŒãã£ã³ã°æŠç¥
APIã²ãŒããŠã§ã€ã§ã®ãªã¯ãšã¹ãã«ãŒãã£ã³ã°ã«ã¯ããã€ãã®æŠç¥ããããããããã«é·æãšçæããããŸããé©åãªæŠç¥ã®éžæã¯ãã¢ããªã±ãŒã·ã§ã³ã®ç¹å®ã®èŠä»¶ãšãã€ã¯ããµãŒãã¹ã¢ãŒããã¯ãã£ã®è€éãã«äŸåããŸãã
1. ãã¹ããŒã¹ã«ãŒãã£ã³ã°
ããã¯æãäžè¬çã§ç°¡åãªã«ãŒãã£ã³ã°æŠç¥ã§ãããªã¯ãšã¹ãã¯URLãã¹ã«åºã¥ããŠã«ãŒãã£ã³ã°ãããŸããäŸãã°ã/usersãžã®ãªã¯ãšã¹ãã¯usersãµãŒãã¹ã«ã/productsãžã®ãªã¯ãšã¹ãã¯productsãµãŒãã¹ã«ã«ãŒãã£ã³ã°ãããŸãã
äŸïŒ
eã³ããŒã¹ãã©ãããã©ãŒã ãèããŠã¿ãŸãããã/api/v1/productsãžã®ãªã¯ãšã¹ãã¯è£œåã«ã¿ãã°ã®ãã€ã¯ããµãŒãã¹ã«ã/api/v1/ordersãžã®ãªã¯ãšã¹ãã¯æ³šæç®¡çã®ãã€ã¯ããµãŒãã¹ã«ã«ãŒãã£ã³ã°ããããããããŸãããããã«ãããé¢å¿ã®åé¢ãæç¢ºã«ãªããåã
ã®ãµãŒãã¹ã®ç®¡çã容æã«ãªããŸãã
èšå®ïŒ
å€ãã®APIã²ãŒããŠã§ã€ãã©ãããã©ãŒã ã§ã¯ãåçŽãªãã¿ãŒã³ãããã³ã°ã䜿çšããŠãã¹ããŒã¹ã«ãŒãã£ã³ã°ãèšå®ã§ããŸããäŸãã°ãKongã§ã¯ãç¹å®ã®ãã¹ã«äžèŽãããªã¯ãšã¹ããç¹å®ã®ãµãŒãã¹ã«è»¢éããã«ãŒããå®çŸ©ã§ããŸãã
é·æïŒ
- å®è£ ãšçè§£ãç°¡åã
- èšå®ãšä¿å®ã容æã
- åºæ¬çãªã«ãŒãã£ã³ã°ã·ããªãªã«é©ããŠããã
çæïŒ
- ãµãŒãã¹æ°ãå€ããªããšè€éã«ãªãå¯èœæ§ãããã
- ããè€éãªåºæºã«åºã¥ãã«ãŒãã£ã³ã°ã®æè»æ§ãéãããã
2. ããããŒããŒã¹ã«ãŒãã£ã³ã°
ãªã¯ãšã¹ãã¯ç¹å®ã®HTTPããããŒã®å€ã«åºã¥ããŠã«ãŒãã£ã³ã°ãããŸããããã¯ãã³ã³ãã³ãããŽã·ãšãŒã·ã§ã³ïŒäŸïŒAcceptããããŒã«åºã¥ãã«ãŒãã£ã³ã°ïŒãããŒãžã§ãã³ã°ïŒäŸïŒã«ã¹ã¿ã ã®API-VersionããããŒã«åºã¥ãã«ãŒãã£ã³ã°ïŒãªã©ã®æ©èœãå®è£
ããã®ã«åœ¹ç«ã¡ãŸãã
äŸïŒ
productsãµãŒãã¹ã®2ã€ã®ããŒãžã§ã³ïŒv1ãšv2ïŒããããšããŸããã«ã¹ã¿ã ããããŒïŒX-API-Versionãªã©ïŒã䜿çšããŠããªã¯ãšã¹ããé©åãªããŒãžã§ã³ã«ã«ãŒãã£ã³ã°ã§ããŸããX-API-Version: v1ãæã€ãªã¯ãšã¹ãã¯v1ãµãŒãã¹ã«ãX-API-Version: v2ãæã€ãªã¯ãšã¹ãã¯v2ãµãŒãã¹ã«ã«ãŒãã£ã³ã°ãããŸããããã¯ã段éçãªããŒã«ã¢ãŠããA/Bãã¹ãã«äŸ¡å€ããããŸãã
èšå®ïŒ
ã»ãšãã©ã®APIã²ãŒããŠã§ã€ã§ã¯ãããããŒå€ã«åºã¥ããŠã«ãŒãã£ã³ã°ã«ãŒã«ãå®çŸ©ã§ããŸããç §åããããããŒåãšæåŸ å€ãæå®ã§ããŸããäŸãã°ãAzure API Managementã§ã¯ãããªã·ãŒã䜿çšããŠããããŒå€ãæ€æ»ããããã«å¿ããŠãªã¯ãšã¹ããã«ãŒãã£ã³ã°ã§ããŸãã
é·æïŒ
- ãã¹ããŒã¹ã«ãŒãã£ã³ã°ãããé«ãæè»æ§ãæäŸã
- ã³ã³ãã³ãããŽã·ãšãŒã·ã§ã³ãšããŒãžã§ãã³ã°ãå¯èœã«ããã
çæïŒ
- ãã¹ããŒã¹ã«ãŒãã£ã³ã°ãããèšå®ãè€éã«ãªãå¯èœæ§ãããã
- ã¯ã©ã€ã¢ã³ãããªã¯ãšã¹ãã«ç¹å®ã®ããããŒãå«ããå¿ èŠãããã
3. ã¯ãšãªãã©ã¡ãŒã¿ããŒã¹ã«ãŒãã£ã³ã°
ãªã¯ãšã¹ãã¯URLå ã®ã¯ãšãªãã©ã¡ãŒã¿ã®å€ã«åºã¥ããŠã«ãŒãã£ã³ã°ãããŸããããã¯ã顧客IDã補åã«ããŽãªãªã©ããªã¯ãšã¹ãã®äžéšãšããŠæž¡ãããç¹å®ã®åºæºã«åºã¥ããŠã«ãŒãã£ã³ã°ããå Žåã«åœ¹ç«ã¡ãŸãã
äŸïŒ
顧客ã®å°ççãªå Žæã«åºã¥ããŠãªã¯ãšã¹ããç°ãªãããã¯ãšã³ããµãŒãã¹ã«ã«ãŒãã£ã³ã°ãããã·ããªãªãèããŠã¿ãŸããããregionãªã©ã®ã¯ãšãªãã©ã¡ãŒã¿ã䜿çšããŠå°åãæå®ã§ããŸãã/products?region=euãæã€ãªã¯ãšã¹ãã¯ãšãŒãããã®è£œåã«ã¿ãã°ãµãŒãã¹ã«ã/products?region=usãæã€ãªã¯ãšã¹ãã¯ç±³åœã®ãµãŒãã¹ã«ã«ãŒãã£ã³ã°ããããããããŸãããããã«ãããã°ããŒãã«ãŠãŒã¶ãŒã®ããã©ãŒãã³ã¹ãšã³ã³ãã©ã€ã¢ã³ã¹ãæé©åã§ããŸãã
èšå®ïŒ
APIã²ãŒããŠã§ã€ã¯éåžžãURLããã¯ãšãªãã©ã¡ãŒã¿ãæœåºããã«ãŒãã£ã³ã°ã«ãŒã«ã§äœ¿çšããã¡ã«ããºã ãæäŸããŸããGoogle Cloud API Gatewayã§ã¯ããµãŒãã¹èšå®ã䜿çšããŠã¯ãšãªãã©ã¡ãŒã¿å€ã«åºã¥ãã«ãŒãã£ã³ã°ã«ãŒã«ãå®çŸ©ã§ããŸãã
é·æïŒ
- åçãªåºæºã«åºã¥ãã«ãŒãã£ã³ã°ãå¯èœã
- å°åå¥ã«ãŒãã£ã³ã°ãªã©ã®æ©èœã®å®è£ ã«åœ¹ç«ã€ã
çæïŒ
- URLãè€éã«ãªããèªã¿ã«ãããªãå¯èœæ§ãããã
- ã¯ã©ã€ã¢ã³ãããªã¯ãšã¹ãã«ç¹å®ã®ã¯ãšãªãã©ã¡ãŒã¿ãå«ããå¿ èŠãããã
4. ã¡ãœããããŒã¹ã«ãŒãã£ã³ã°
ãªã¯ãšã¹ãã¯HTTPã¡ãœããïŒäŸïŒGET, POST, PUT, DELETEïŒã«åºã¥ããŠã«ãŒãã£ã³ã°ãããŸããããã¯ãRESTful APIãæäŸããããã«ããã°ãã°ãã¹ããŒã¹ã«ãŒãã£ã³ã°ãšçµã¿åãããŠäœ¿çšãããŸãã
äŸïŒ
GET /usersããŠãŒã¶ãŒæ
å ±ãååŸãããµãŒãã¹ã«ãPOST /usersãæ°ãããŠãŒã¶ãŒãäœæãããµãŒãã¹ã«ãPUT /users/{id}ããŠãŒã¶ãŒãæŽæ°ãããµãŒãã¹ã«ãDELETE /users/{id}ããŠãŒã¶ãŒãåé€ãããµãŒãã¹ã«ã«ãŒãã£ã³ã°ãããããããŸãããããã«ãããæç¢ºã§äžè²«æ§ã®ããAPIèšèšã®ããã«æšæºçãªHTTPåè©ã掻çšã§ããŸãã
èšå®ïŒ
APIã²ãŒããŠã§ã€ã¯äžè¬çã«HTTPã¡ãœããã«åºã¥ãã«ãŒãã£ã³ã°ããµããŒãããŠããŸããç¹å®ã®ãã¹ã«å¯ŸããŠåã¡ãœããããšã«åå¥ã®ã«ãŒããå®çŸ©ã§ããŸããAWS API Gatewayã§ã¯ããªãœãŒã¹äžã®åHTTPã¡ãœããã«å¯ŸããŠç°ãªãçµ±åãèšå®ã§ããŸãã
é·æïŒ
- RESTful APIèšèšãå¯èœã«ããã
- HTTPã¡ãœããã«åºã¥ããæç¢ºãªé¢å¿ã®åé¢ã
çæïŒ
- HTTPã¡ãœããã«ã€ããŠã®ååãªçè§£ãå¿ èŠã
5. ã³ã³ãã³ãããŒã¹ã«ãŒãã£ã³ã°
ãªã¯ãšã¹ãã¯ãªã¯ãšã¹ãããã£ã®å 容ã«åºã¥ããŠã«ãŒãã£ã³ã°ãããŸããããã¯ãè€éãªåºæºã«åºã¥ããŠã«ãŒãã£ã³ã°ããå Žåããã«ãŒãã£ã³ã°ã®æ±ºå®ããªã¯ãšã¹ãã§éä¿¡ãããããŒã¿ã«äŸåããå Žåã«åœ¹ç«ã¡ãŸããããã¯ãã¯ãšãªèªäœãã«ãŒãã£ã³ã°ãé§åããGraphQLå®è£ ã§ç¹ã«åœ¹ç«ã¡ãŸãã
äŸïŒ
ç°ãªãçš®é¡ã®ããã¥ã¡ã³ããåŠçããè€æ°ã®ããã¯ãšã³ããµãŒãã¹ããããšããŸãããªã¯ãšã¹ãããã£ã調ã¹ãŠããã¥ã¡ã³ãã®çš®é¡ã倿ãããªã¯ãšã¹ããé©åãªãµãŒãã¹ã«ã«ãŒãã£ã³ã°ã§ããŸããäŸãã°ããªã¯ãšã¹ãããã£ã«documentType: 'invoice'ãšãããã£ãŒã«ããæã€JSONãã€ããŒããå«ãŸããŠããå Žåããªã¯ãšã¹ããè«æ±æžåŠçãµãŒãã¹ã«ã«ãŒãã£ã³ã°ã§ããŸããã°ããŒãã«ããžãã¹ã§ã¯ãè«æ±æžã«ã¯å°åå·®ïŒäŸïŒVATèŠåïŒãããå¯èœæ§ããããããã³ã³ãã³ãã¯ã«ãŒãã£ã³ã°å
ã®åœãç¹å®ããããã«ã䜿çšã§ããŸãã
èšå®ïŒ
ã³ã³ãã³ãããŒã¹ã«ãŒãã£ã³ã°ã¯ãä»ã®ã«ãŒãã£ã³ã°æŠç¥ãããé«åºŠãªèšå®ãå¿ èŠã«ãªãããšããããããŸãããªã¯ãšã¹ãããã£ãæ€æ»ããã«ãŒãã£ã³ã°ã®æ±ºå®ãè¡ãããã«ãã¹ã¯ãªãããã«ã¹ã¿ã ã³ãŒãã䜿çšããå¿ èŠããããããããŸãããTyk API Gatewayã¯ããªã¯ãšã¹ã倿ãã¹ã¯ãªããæ©èœãæäŸããŠããããããã¯ã³ã³ãã³ãããŒã¹ã«ãŒãã£ã³ã°ã«äœ¿çšã§ããŸãã
é·æïŒ
- ã«ãŒãã£ã³ã°ã®æ±ºå®ã«ãããŠæãé«ãæè»æ§ãæäŸã
- è€éãªåºæºã«åºã¥ãã«ãŒãã£ã³ã°ãå¯èœã
çæïŒ
- å®è£ ãšèšå®ãæãè€éã«ãªãå¯èœæ§ãããã
- ã«ã¹ã¿ã ã³ãŒããã¹ã¯ãªãããå¿ èŠã«ãªãå Žåãããã
- ãªã¯ãšã¹ãããã£ãæ€æ»ããå¿ èŠããããããããã©ãŒãã³ã¹ã«åœ±é¿ãäžããå¯èœæ§ãããã
ãªã¯ãšã¹ãã«ãŒãã£ã³ã°ãã¿ãŒã³
ãªã¯ãšã¹ãã«ãŒãã£ã³ã°ã匷åãããã€ã¯ããµãŒãã¹ã·ã¹ãã ã®å šäœçãªã¢ãŒããã¯ãã£ãæ¹åããããã«é©çšã§ãããããã€ãã®ç¢ºç«ããããã¿ãŒã³ããããŸãã
1. ã¢ã°ãªã²ãŒã·ã§ã³
APIã²ãŒããŠã§ã€ã¯ãè€æ°ã®ããã¯ãšã³ããµãŒãã¹ããã®ã¬ã¹ãã³ã¹ãã¯ã©ã€ã¢ã³ããžã®åäžã®ã¬ã¹ãã³ã¹ã«éçŽããŸããããã«ãããå¿ èŠãªã©ãŠã³ãããªããã®æ°ãæžããã¯ã©ã€ã¢ã³ãã®ãšã¯ã¹ããªãšã³ã¹ãç°¡çŽ åãããŸãã
äŸïŒ
ã¯ã©ã€ã¢ã³ãããŠãŒã¶ãŒãããã¡ã€ã«ããªã¯ãšã¹ããããšãAPIã²ãŒããŠã§ã€ã¯usersãµãŒãã¹ãprofilesãµãŒãã¹ãaddressesãµãŒãã¹ããããŒã¿ãååŸããå¿
èŠããããããããŸãããAPIã²ãŒããŠã§ã€ã¯ããããã®ãµãŒãã¹ããã®ã¬ã¹ãã³ã¹ãåäžã®ãŠãŒã¶ãŒãããã¡ã€ã«ã¬ã¹ãã³ã¹ã«éçŽãããããã¯ã©ã€ã¢ã³ãã«è¿ããŸãããã®ãã¿ãŒã³ã¯ããã©ãŒãã³ã¹ãåäžãããã¯ã©ã€ã¢ã³ãã¢ããªã±ãŒã·ã§ã³ã®è€éãã軜æžããŸãã
2. ãã©ã³ã¹ãã©ãŒã¡ãŒã·ã§ã³
APIã²ãŒããŠã§ã€ã¯ãã¯ã©ã€ã¢ã³ããšããã¯ãšã³ããµãŒãã¹éã®ãªã¯ãšã¹ããšã¬ã¹ãã³ã¹ã倿ããŸããããã«ãããã¯ã©ã€ã¢ã³ãã¯ããã¯ãšã³ããµãŒãã¹ã«ãã£ãŠå ¬éãããŠããAPIãšã¯ç°ãªãAPIã䜿çšã§ããã¯ã©ã€ã¢ã³ããå éšã¢ãŒããã¯ãã£ããåé¢ã§ããŸãã
äŸïŒ
ã¯ã©ã€ã¢ã³ãã¯ç¹å®ã®ããŒã¿åœ¢åŒãåœåèŠåã§ãªã¯ãšã¹ããéä¿¡ãããããããŸãããAPIã²ãŒããŠã§ã€ã¯ããªã¯ãšã¹ããããã¯ãšã³ããµãŒãã¹ãçè§£ã§ãã圢åŒã«å€æããŸããåæ§ã«ãAPIã²ãŒããŠã§ã€ã¯ããã¯ãšã³ããµãŒãã¹ããã®ã¬ã¹ãã³ã¹ãã¯ã©ã€ã¢ã³ããæåŸ ãã圢åŒã«å€æããŸãããã®ãã¿ãŒã³ã«ããããã€ã¯ããµãŒãã¹ã¢ãŒããã¯ãã£ã®æè»æ§ãšé©å¿æ§ãåäžããŸãã
3. ãã§ã€ãã³ã°
APIã²ãŒããŠã§ã€ã¯ããªã¯ãšã¹ããè€æ°ã®ããã¯ãšã³ããµãŒãã¹ã«é çªã«ã«ãŒãã£ã³ã°ããŸããåãµãŒãã¹ã¯ç¹å®ã®ã¿ã¹ã¯ãå®è¡ããçµæããã§ãŒã³å ã®æ¬¡ã®ãµãŒãã¹ã«æž¡ããŸãã
äŸïŒ
泚æãåŠçããéãAPIã²ãŒããŠã§ã€ã¯ãŸããªã¯ãšã¹ããæ³šææ€èšŒãµãŒãã¹ã«ãæ¬¡ã«æ¯æãåŠçãµãŒãã¹ã«ãæåŸã«æ³šæå±¥è¡ãµãŒãã¹ã«ã«ãŒãã£ã³ã°ãããããããŸãããåãµãŒãã¹ã¯ç¹å®ã®ã¿ã¹ã¯ãå®è¡ããæ³šæããã§ãŒã³å
ã®æ¬¡ã®ãµãŒãã¹ã«æž¡ããŸãããã®ãã¿ãŒã³ã«ãããè€éãªããžãã¹ããã»ã¹ãã¢ãžã¥ãŒã«åŒã§ã¹ã±ãŒã©ãã«ãªæ¹æ³ã§å®è£
ã§ããŸãã
4. ãã©ã³ãã³ã°
APIã²ãŒããŠã§ã€ã¯ãç¹å®ã®æ¡ä»¶ã«åºã¥ããŠãªã¯ãšã¹ããç°ãªãããã¯ãšã³ããµãŒãã¹ã«ã«ãŒãã£ã³ã°ããŸããããã«ããããªã¯ãšã¹ãã®ã³ã³ããã¹ãã«åºã¥ããŠç°ãªãããžãã¹ããžãã¯ãå®è£ ã§ããŸãã
äŸïŒ
ãŠãŒã¶ãŒã®æåšå°ã«åºã¥ããŠãAPIã²ãŒããŠã§ã€ã¯ãªã¯ãšã¹ããç°ãªãäŸ¡æ Œèšå®ãµãŒãã¹ã«ã«ãŒãã£ã³ã°ãããããããŸããããšãŒãããã®ãŠãŒã¶ãŒã¯VATãé©çšãããµãŒãã¹ã«ãç±³åœã®ãŠãŒã¶ãŒã¯é©çšããªããµãŒãã¹ã«ã«ãŒãã£ã³ã°ããããããããŸãããããã«ãããç¹å®ã®å°åã顧客ã»ã°ã¡ã³ãã«åãããŠããžãã¹ããžãã¯ã調æŽã§ããŸãã
èšå®ãªãã·ã§ã³
APIã²ãŒããŠã§ã€ã§ãªã¯ãšã¹ãã«ãŒãã£ã³ã°ãèšå®ããã«ã¯ãéåžžãã«ãŒãããµãŒãã¹ãããªã·ãŒãå®çŸ©ããå¿ èŠããããŸããå ·äœçãªèšå®ãªãã·ã§ã³ã¯ã䜿çšããŠããAPIã²ãŒããŠã§ã€ãã©ãããã©ãŒã ã«ãã£ãŠç°ãªããŸãã
1. ã«ãŒãå®çŸ©
ã«ãŒãã¯ãåä¿¡ãªã¯ãšã¹ããšããã¯ãšã³ããµãŒãã¹éã®ãããã³ã°ãå®çŸ©ããŸããéåžžãæ¬¡ã®æ å ±ãå«ãŸããŸãïŒ
- ãã¹ïŒç §åããURLãã¹ã
- ã¡ãœããïŒç §åããHTTPã¡ãœããïŒäŸïŒGET, POST, PUT, DELETEïŒã
- ããããŒïŒç §åããããããŒã
- ã¯ãšãªãã©ã¡ãŒã¿ïŒç §åããã¯ãšãªãã©ã¡ãŒã¿ã
- ãµãŒãã¹ïŒãªã¯ãšã¹ããã«ãŒãã£ã³ã°ããå ã®ããã¯ãšã³ããµãŒãã¹ã
2. ãµãŒãã¹å®çŸ©
ãµãŒãã¹ã¯ãAPIã²ãŒããŠã§ã€ããªã¯ãšã¹ããã«ãŒãã£ã³ã°ã§ããããã¯ãšã³ããµãŒãã¹ã衚ããŸããéåžžãæ¬¡ã®æ å ±ãå«ãŸããŸãïŒ
- URLïŒããã¯ãšã³ããµãŒãã¹ã®URLã
- ãã«ã¹ãã§ãã¯ïŒããã¯ãšã³ããµãŒãã¹ã®å¥å šæ§ããã§ãã¯ãããšã³ããã€ã³ãã
- è² è·åæ£ïŒäœ¿çšããè² è·åæ£ã¢ã«ãŽãªãºã ã
3. ããªã·ãŒ
ããªã·ãŒã¯ããªã¯ãšã¹ããšã¬ã¹ãã³ã¹ã«ç¹å®ã®ããžãã¯ãé©çšããããã«äœ¿çšãããŸããèªèšŒãèªå¯ãã¬ãŒãå¶éããªã¯ãšã¹ã倿ãã¬ã¹ãã³ã¹å€æã«äœ¿çšã§ããŸãã
APIã²ãŒããŠã§ã€ã®éžæ
ããã€ãã®APIã²ãŒããŠã§ã€ãœãªã¥ãŒã·ã§ã³ãå©çšå¯èœã§ãããããã«é·æãšçæããããŸããAPIã²ãŒããŠã§ã€ã®éžæã¯ãã¢ããªã±ãŒã·ã§ã³ã®ç¹å®ã®èŠä»¶ãšã€ã³ãã©ã¹ãã©ã¯ãã£ç°å¢ã«äŸåããŸãã
人æ°ã®APIã²ãŒããŠã§ã€ãœãªã¥ãŒã·ã§ã³
- KongïŒNginxäžã«æ§ç¯ããããªãŒãã³ãœãŒã¹ã®APIã²ãŒããŠã§ã€ãæ¡åŒµæ§ãé«ããå¹ åºããã©ã°ã€ã³ããµããŒãããŠããŸãã
- TykïŒAPI管çãšåæã«éç¹ã眮ãããªãŒãã³ãœãŒã¹ã®APIã²ãŒããŠã§ã€ã
- ApigeeïŒAPIã²ãŒããŠã§ã€ãåæãéçºè ããŒã¿ã«ãªã©ãå¹ åºãæ©èœãæäŸããåçšAPI管çãã©ãããã©ãŒã ã
- AWS API GatewayïŒAmazon Web ServicesãæäŸãããã«ãããŒãžãã®APIã²ãŒããŠã§ã€ãµãŒãã¹ã
- Azure API ManagementïŒMicrosoft AzureãæäŸãããã«ãããŒãžãã®APIã²ãŒããŠã§ã€ãµãŒãã¹ã
- Google Cloud API GatewayïŒGoogle Cloud PlatformãæäŸãããã«ãããŒãžãã®APIã²ãŒããŠã§ã€ãµãŒãã¹ã
ãªã¯ãšã¹ãã«ãŒãã£ã³ã°ã®ãã¹ããã©ã¯ãã£ã¹
ãªã¯ãšã¹ãã«ãŒãã£ã³ã°ã®ãã¹ããã©ã¯ãã£ã¹ã«åŸãããšã§ããã€ã¯ããµãŒãã¹ã¢ãŒããã¯ãã£ã®ããã©ãŒãã³ã¹ãã¹ã±ãŒã©ããªãã£ãä¿å®æ§ãå€§å¹ ã«åäžãããããšãã§ããŸãã
1. ã«ãŒãã£ã³ã°ã«ãŒã«ãã·ã³ãã«ã«ä¿ã€
çè§£ãä¿å®ãå°é£ãªãé床ã«è€éãªã«ãŒãã£ã³ã°ã«ãŒã«ã¯é¿ããŠãã ãããããã·ã³ãã«ãªã«ãŒã«ã®æ¹ããã©ãã«ã·ã¥ãŒãã£ã³ã°ã容æã§ããšã©ãŒãçºçãã«ãããªããŸãã
2. ãµãŒãã¹ãã£ã¹ã«ããªã䜿çšãã
ãµãŒãã¹ãã£ã¹ã«ããªã掻çšããŠãããã¯ãšã³ããµãŒãã¹ãåçã«èŠã€ããŸããããã«ããããµãŒãã¹ãã¹ã±ãŒãªã³ã°ããããåãããã€ããããããå Žåã§ããAPIã²ãŒããŠã§ã€ã¯åžžã«å©çšå¯èœãªã€ã³ã¹ã¿ã³ã¹ã«ãªã¯ãšã¹ããã«ãŒãã£ã³ã°ã§ããŸãã
3. è² è·åæ£ãå®è£ ãã
åä¿¡ãªã¯ãšã¹ããããã¯ãšã³ããµãŒãã¹ã®è€æ°ã€ã³ã¹ã¿ã³ã¹ã«åæ£ãããŠãéè² è·ãé²ããé«å¯çšæ§ã確ä¿ããŸããã¢ããªã±ãŒã·ã§ã³ã®ããŒãºã«é©ããè² è·åæ£ã¢ã«ãŽãªãºã ïŒäŸïŒã©ãŠã³ãããã³ãæå°æ¥ç¶æ°ïŒã䜿çšããŠãã ããã
4. APIã²ãŒããŠã§ã€ãä¿è·ãã
èªèšŒããã³èªå¯ã¡ã«ããºã ãå®è£ ããŠãããã¯ãšã³ããµãŒãã¹ãäžæ£ã¢ã¯ã»ã¹ããä¿è·ããŸããOAuth 2.0ãJWTãªã©ã®æ¥çæšæºã®ã»ãã¥ãªãã£ãããã³ã«ã䜿çšããŠãã ããã
5. ã«ãŒãã£ã³ã°ã®ããã©ãŒãã³ã¹ãç£èŠããã³åæãã
APIã²ãŒããŠã§ã€ãšããã¯ãšã³ããµãŒãã¹ã®ããã©ãŒãã³ã¹ãç£èŠããŠãããã«ããã¯ãç¹å®ããã«ãŒãã£ã³ã°ã«ãŒã«ãæé©åããŸããåæããŒã«ã䜿çšããŠããªã¯ãšã¹ãã®ã¬ã€ãã³ã·ããšã©ãŒçããã©ãã£ãã¯ãã¿ãŒã³ã远跡ããŠãã ããã
6. äžå åãããæ§æç®¡ç
äžå åãããæ§æç®¡çã·ã¹ãã ã䜿çšããŠãAPIã²ãŒããŠã§ã€ã®ã«ãŒãã£ã³ã°ã«ãŒã«ããã®ä»ã®èšå®ã管çããŸããããã«ãããè€æ°ã®APIã²ãŒããŠã§ã€ã€ã³ã¹ã¿ã³ã¹éã§ã®å€æŽã®ç®¡çãšãããã€ãç°¡çŽ åãããŸãã
7. ããŒãžã§ãã³ã°æŠç¥
APIã®æç¢ºãªããŒãžã§ãã³ã°æŠç¥ãå®è£ ããŸããããã«ãããæ¢åã®ã¯ã©ã€ã¢ã³ããå£ãããšãªãAPIã«å€æŽãå°å ¥ã§ããŸããããããŒããŒã¹ãŸãã¯ãã¹ããŒã¹ã®ã«ãŒãã£ã³ã°ã䜿çšããŠãAPIã®ç°ãªãããŒãžã§ã³ã«ãªã¯ãšã¹ããã«ãŒãã£ã³ã°ããŸãã
8. ã°ã¬ã€ã¹ãã«ãã°ã©ããŒã·ã§ã³
ããã¯ãšã³ããµãŒãã¹ã®é害ã«å¯ŸåŠããããã«ãã°ã¬ã€ã¹ãã«ãã°ã©ããŒã·ã§ã³ïŒæ£åžžãªæ©èœäœäžïŒã¡ã«ããºã ãå®è£ ããŸããããã¯ãšã³ããµãŒãã¹ãå©çšã§ããªãå ŽåãAPIã²ãŒããŠã§ã€ã¯ã¯ã©ãã·ã¥ããã®ã§ã¯ãªããã¯ã©ã€ã¢ã³ãã«æå³ã®ãããšã©ãŒã¡ãã»ãŒãžãè¿ãå¿ èŠããããŸãã
9. ã¬ãŒãå¶éãšã¹ããããªã³ã°
ã¬ãŒãå¶éãšã¹ããããªã³ã°ãå®è£ ããŠãããã¯ãšã³ããµãŒãã¹ãéå°ãªãã©ãã£ãã¯ã§å§åãããã®ãé²ããŸããããã«ããããµãŒãã¹æåŠæ»æãé²ããAPIã²ãŒããŠã§ã€ã®å¿çæ§ãç¶æã§ããŸãã
çµè«
APIã²ãŒããŠã§ã€ã®ãªã¯ãšã¹ãã«ãŒãã£ã³ã°ããã¹ã¿ãŒããããšã¯ãå¹ççã§ã¹ã±ãŒã©ãã«ããã€ä¿å®æ§ã®é«ããã€ã¯ããµãŒãã¹ã¢ãŒããã¯ãã£ãæ§ç¯ããããã«äžå¯æ¬ ã§ããããŸããŸãªã«ãŒãã£ã³ã°æŠç¥ããã¿ãŒã³ãèšå®ãªãã·ã§ã³ããã¹ããã©ã¯ãã£ã¹ãçè§£ããããšã§ãããã¯ãšã³ããµãŒãã¹ãžã®ãã©ãã£ãã¯ã广çã«ç®¡çããã¯ã©ã€ã¢ã³ãã«ã·ãŒã ã¬ã¹ãªäœéšãæäŸã§ããŸãããã€ã¯ããµãŒãã¹ãé²åãç¶ããã«ã€ããŠããªã¯ãšã¹ãã®ã«ãŒãã£ã³ã°ãšç®¡çã«ãããAPIã²ãŒããŠã§ã€ã®åœ¹å²ã¯ããŸããŸãéèŠã«ãªãã§ããããç¹å®ã®èŠä»¶ãšã€ã³ãã©ã¹ãã©ã¯ãã£ã«é©ããAPIã²ãŒããŠã§ã€ãéžæããããšããæåã®ããã«ã¯äžå¯æ¬ ã§ãããã¹ãŠã®ã«ãŒãã£ã³ã°æ±ºå®ã«ãããŠãã»ãã¥ãªãã£ãæåªå äºé ãšããããšãå¿ããªãã§ãã ããã