ã2026幎çãAPIéçºã®å§ãæ¹ â æåã®APIãäœãå®å šã¬ã€ã
APIã£ãŠã䜿ãåŽãã®ã€ã¡ãŒãžãããªããã ãã©ãèªåã§äœãããšãã§ããã®ïŒ
ãã¡ããïŒAPIã¯ã¬ã¹ãã©ã³ã®ãŠã§ã€ã¿ãŒã¿ãããªãã®ã§ãã客ããïŒã¯ã©ã€ã¢ã³ãïŒã®æ³šæããããã³ïŒãµãŒããŒïŒã«å±ããŠãæçïŒããŒã¿ïŒãæã£ãŠãã圹å²ã ããèªåã§ãŠã§ã€ã¿ãŒã®åãæ¹ãæ±ºããïŒAPIéçºã£ãŠããšã ãã
ãªãã»ã©ïŒãããAPIéçºã£ãŠããŸãäœããå§ããã°ããã®ïŒ
ãŸãã¯REST APIã®åºæ¬ãæŒãããããRESTã§ã¯ããªãœãŒã¹ããšããåäœã§ããŒã¿ã管çããããäŸãã°ãŠãŒã¶ãŒæ å ±ãªã /usersãååãªã /products ã¿ããã«URLã§è¡šçŸããããããŠHTTPã¡ãœããã§æäœãåãããã ãGETã§ååŸãPOSTã§äœæãPUTã§æŽæ°ãDELETEã§åé€ããã®4ã€ãèŠããã°åºæ¬ã¯ããããªã ãã
URLãšã¡ãœããã®çµã¿åããã§äœããããæ±ºãŸããã ãïŒå®éã«ã³ãŒããæžãã«ã¯ã©ãããã°ããã®ïŒ
åå¿è ã«ãããããªã®ã¯ãNode.jsã®Express.jsãPythonã®FastAPIã ããExpressãªãæ°è¡ã§APIãµãŒããŒãç«ã¡äžããããFastAPIãªãPythonã®åãã³ãã䜿ã£ãŠèªåã§ããã¥ã¡ã³ããçæããŠãããããŸãã¯ãGET /hello ã§ã¡ãã»ãŒãžãè¿ãããããã®å°ããªAPIããå§ããŠã¿ããã
ã¬ã¹ãã³ã¹ã®åœ¢åŒã£ãŠã©ããªã£ãŠãã®ïŒããJSONã£ãŠèããã©âŠ
ãããçŸä»£ã®APIã§ã¯ã»ãšãã©JSON圢åŒã§ããŒã¿ãããåãããããããããã¹ããŒã¿ã¹ã³ãŒãã倧äºã ãã200ã¯æåã201ã¯äœææåã400ã¯ãªã¯ãšã¹ãã®äžåã404ã¯ãªãœãŒã¹ãèŠã€ãããªãã500ã¯ãµãŒããŒå éšãšã©ãŒããã®5ã€ã¯æäœéèŠããŠããããæ£ããã¹ããŒã¿ã¹ã³ãŒããè¿ãããšã§ãAPIã䜿ãåŽããšã©ãŒã®åå ã倿ãããããªããã ã
äœã£ãAPIãæ£ããåãã確èªããã«ã¯ã©ããããããã®ïŒ
ãã¹ãããŒã«ã䜿ããšããããPostmanã¯GUIã§çŽæçã«ãªã¯ãšã¹ããéããããcurlã¯ã³ãã³ãã©ã€ã³ãããµã¯ããšç¢ºèªã§ãããäŸãã° curl -X GET http://localhost:3000/users ãšæãŠã°ãŠãŒã¶ãŒäžèЧãè¿ã£ãŠãããéçºäžã¯ããŸãã«ãã¹ãããŠãæåŸ éãã®ã¬ã¹ãã³ã¹ãè¿ãã確èªããçãã€ãããã
ããã¥ã¡ã³ããæžããªããšãã¡ã£ãŠèããããšãããã©ã倧å€ããâŠ
ããã§OpenAPIïŒæ§SwaggerïŒã®åºçªã ããAPIã®ä»æ§ãYAML圢åŒã§å®çŸ©ãããšãèŠãããããã¥ã¡ã³ãããŒãžãèªåçæããããFastAPIãªãäœãããªããŠã /docs ã«ã¢ã¯ã»ã¹ããã ãã§Swagger UIã衚瀺ããããã ãæè¿ã¯ãOpenAPIãã¡ãŒã¹ãããšãã£ãŠãã³ãŒããæžãåã«ãŸã仿§ãå®çŸ©ããã¢ãããŒããäž»æµã«ãªãã€ã€ãããã
ã»ãã¥ãªãã£é¢ã¯ã©ãèããã°ããã®ïŒèª°ã§ãã¢ã¯ã»ã¹ã§ãã¡ãããšæãããâŠ
èªèšŒã®ä»çµã¿ãå ¥ããã®ãåºæ¬ã ããã·ã³ãã«ãªã®ã¯APIããŒæ¹åŒã§ããªã¯ãšã¹ãããããŒã«ããŒãå«ããŠãããæ¹æ³ãããå°ãæ¬æ Œçã«ãããªãJWTïŒJSON Web TokenïŒã䜿ã£ãèªèšŒãããããã ãããã°ã€ã³æã«ããŒã¯ã³ãçºè¡ããŠã以éã®ãªã¯ãšã¹ãã«ã¯ãã®ããŒã¯ã³ãä»ããŠãããä»çµã¿ã ãã
æ¬çªã§å ¬éãããšãã«æ°ãã€ããããšã£ãŠäœãããïŒ
ã¬ãŒããªããã£ã³ã°ã¯å¿ é ã ãã1ã€ã®ã¯ã©ã€ã¢ã³ãããçæéã«å€§éã®ãªã¯ãšã¹ããæ¥ããšãµãŒããŒãèœã¡ããããã1åéã«100ãªã¯ãšã¹ããŸã§ãã®ãããªå¶éãããããããšAPIããŒãžã§ãã³ã°ã倧äºã§ã/v1/users ã®ããã«URLã«ããŒãžã§ã³ãå ¥ããŠãããšãåŸãã仿§å€æŽããŠãæ¢åã®ãŠãŒã¶ãŒã«åœ±é¿ãäžããã«æžããã
å€§èŠæš¡ã«ãªã£ããã©ã管çããã®ïŒ
APIã²ãŒããŠã§ã€ãå°å ¥ãããšããããèªèšŒãã¬ãŒããªããã£ã³ã°ããã°åéãã«ãŒãã£ã³ã°ãªã©ãäžå 管çã§ãããAWS API GatewayãKongãæåã ããããšã¯OpenAPIãã¡ãŒã¹ãèšèšã培åºãããšãããã³ããšã³ããšããã¯ãšã³ãã§äžŠè¡éçºã§ãããããããŒã éçºã®ã¹ããŒããæ Œæ®µã«äžãããã ãæåã¯å°ããå§ããŠãæé·ã«åãããŠã¢ãŒããã¯ãã£ãé²åãããã®ãAPIéçºã®ã³ãã ãã