REST API ã®ä»çµã¿
REST API ãäŒæ¥ã®ãœãããŠã§ã¢ ã¢ããªã±ãŒã·ã§ã³ã®å¹æçãªçµ±åã«ã©ã®ããã«åœ¹ç«ã€ããåŠã³ãŸãããã

RESTful APIãšã¯äœã§ãã?
RESTful API (Representational State Transfer Application Programming Interface) ã¯ãWeb ãµãŒãã¹ã®æ§ç¯ãšç®¡çã«åºã䜿çšãããŠããèšèšã¹ã¿ã€ã«ã§ãããããã¯ãéçºè ããå€§èŠæš¡åæ£ã·ã¹ãã åãã®äžé£ã®åºæ¬ååã§ãã REST ã®ã¢ãŒããã¯ãã£äžã®å¶çŽã«åŸã£ãŠããµãŒããŒäžã®ãªãœãŒã¹ãäœæãèªã¿åããæŽæ°ãåé€ããã®ã«åœ¹ç«ã¡ãŸãã RESTful API ã¯ãGETãPOSTãPUTãDELETE ãªã©ã®æšæº HTTP (Hypertext Transfer Protocol) ã¡ãœãããå©çšããŸãããããã®æ¹æ³ã«ãããWeb ãã©ãŠã¶ãŒãã¢ãã€ã« ã¢ããªãªã©ã®ã¯ã©ã€ã¢ã³ããšãµãŒããŒã®éä¿¡ã容æã«ãªããŸãã
RESTful API ã®äž»ãªç®çã¯ãããŸããŸãªãœãããŠã§ã¢ ã¢ããªã±ãŒã·ã§ã³éã®çžäºéçšæ§ãå¯èœã«ããã¢ããªã±ãŒã·ã§ã³ã®çµ±åãšé£æºããã容æã«ããããšã§ãã RESTful API ãéããŠäº€æãããããŒã¿ã¯éåžžã JSON (JavaScript Object Notation) ã XML (eXtensible Markup Language) ãªã©ã®äººãèªãã圢åŒã§ãããããææ°ã® Web ã¢ããªã±ãŒã·ã§ã³ãã¢ãã€ã« ã¢ããªã±ãŒã·ã§ã³ã«é©ããŠããŸãã
RESTful API ã®ä»çµã¿
RESTful API ã¯ãHTTP ãããã³ã«ãå©çšããŠã¯ã©ã€ã¢ã³ããšãµãŒããŒéã§ããŒã¿ã亀æããŸããå HTTP ãªã¯ãšã¹ãã¯ãã¡ãœãããUniform Resource Identifier (URI)ãããããŒãããã³ã¡ãã»ãŒãžæ¬æã§æ§æãããŸãããµãŒããŒã¯ã¡ãœãããš URI ã«åºã¥ããŠãªã¯ãšã¹ããåŠçããã¹ããŒã¿ã¹ ã³ãŒããããããŒãã¡ãã»ãŒãžæ¬æãå«ã HTTP å¿çãè¿ããŸãã RESTful API ã§äœ¿çšããã䞻㪠HTTP ã¡ãœããã®æŠèŠã次ã«ç€ºããŸãã
GET: URI ã§èå¥ããããªãœãŒã¹ããµãŒããŒããååŸããŸããPOST: ã¡ãã»ãŒãžæ¬æã§æäŸãããããŒã¿ã䜿çšããŠããµãŒããŒäžã«æ°ãããªãœãŒã¹ãäœæããŸããPUT: ã¡ãã»ãŒãžæ¬æã§æäŸãããããŒã¿ã§æ¢åã®ãªãœãŒã¹ãæŽæ°ããŸããDELETE: URI ã§èå¥ããããªãœãŒã¹ããµãŒããŒããåé€ããŸãã

ããšãã°ã é»ååååŒã¢ããªã±ãŒã·ã§ã³ã¯ RESTful API ã䜿çšããŠè£œåãé¡§å®¢ãæ³šæã管çããå ŽåããããŸããã¯ã©ã€ã¢ã³ã ã¢ããªã±ãŒã·ã§ã³ã¯ããµãŒããŒã« GET ãªã¯ãšã¹ããéä¿¡ããŠè£œåã®è©³çްãååŸããŸã (äŸ: GET /products/{id} )ã補åãåé€ããã«ã¯ãã¯ã©ã€ã¢ã³ã㯠URI ã«è£œåã® ID ãæå®ã㊠DELETE ãªã¯ãšã¹ãããµãŒããŒã«éä¿¡ããŸã (äŸ: DELETE /products/{id} )ããµãŒããŒã¯ã¯ã©ã€ã¢ã³ãã®ãªã¯ãšã¹ããåŠçãããªã¯ãšã¹ããããæäœãå®è¡ãããªãã·ã§ã³ã®ã¡ãã»ãŒãžæ¬æ (é垞㯠JSON 圢åŒ) ãšãšãã«é©åãªã¹ããŒã¿ã¹ ã³ãŒããè¿ããŸãã
RESTful API èšèšã®åå
RESTful API ã®å©ç¹ãå®çŸããã«ã¯ãREST ã¢ãŒããã¯ãã£ãå®çŸ©ããäž»èŠãªååã«åŸãããšãäžå¯æ¬ ã§ãããããã®ååã«ãããäºæž¬å¯èœãã¹ã±ãŒã©ãã«ãä¿å®å¯èœãª API èšèšãä¿èšŒãããŸãã
- ã¹ããŒãã¬ã¹ ãµãŒã㌠ã€ã³ã¿ã©ã¯ã·ã§ã³: ã¯ã©ã€ã¢ã³ããããµãŒããŒãžã®åãªã¯ãšã¹ãã«ã¯ããµãŒããŒããªã¯ãšã¹ããå®è¡ããããã«å¿ èŠãªãã¹ãŠã®æ å ±ãå«ãŸããŠããå¿ èŠããããŸãããµãŒããŒã¯ãåãªã¯ãšã¹ããèªå·±å®çµåãã€ç¬ç«ãããã®ã«ããããããªã¯ãšã¹ããšãªã¯ãšã¹ãã®éã«ãªã¯ãšã¹ãã«é¢é£ããããŒã¿ãäžåä¿åããªãã§ãã ããã
- ã¯ã©ã€ã¢ã³ããšãµãŒããŒã®åé¢: ã¯ã©ã€ã¢ã³ããšãµãŒããŒã¯å¥ã ã®é¢å¿äºãšè²¬ä»»ãæã€å¿ èŠããããŸããã¯ã©ã€ã¢ã³ãã¯ãŠãŒã¶ãŒ ã€ã³ã¿ãŒãã§ã€ã¹ãš ãŠãŒã¶ãŒ ãšã¯ã¹ããªãšã³ã¹ ãæ åœãããµãŒããŒã¯ãªãœãŒã¹ã®åŠçãä¿åã管çãåŠçããŸãã
- ãã£ãã·ã¥å¯èœæ§: ãµãŒããŒããã®å¿çãã¯ã©ã€ã¢ã³ãåŽã§ãã£ãã·ã¥ããŠãããã©ãŒãã³ã¹ãåäžããããµãŒããŒã®è² è·ã軜æžã§ããŸãããµãŒããŒã¯ãå¿çããã£ãã·ã¥å¯èœãã©ãããããã³ãã®æéã瀺ããã£ãã·ã¥å¶åŸ¡ã¡ã¿ããŒã¿ãæäŸããå¿ èŠããããŸãã
- éå±€åãããã·ã¹ãã ã¢ãŒããã¯ãã£: RESTful API ã¯ãåå±€ãç¹å®ã®åœ¹å²ãæã€éå±€æ§é ã䜿çšããŠæ§ç¯ã§ããŸãããã®èšèšã«ãããæžå¿µäºé ã®åé¢ãä¿å®æ§ã®åäžãæ¡åŒµæ§ã®åäžãå¯èœã«ãªããŸãã
- äžæã®ãªãœãŒã¹èå¥: API å ã®åãªãœãŒã¹ã¯äžæã® URI (Uniform Resource Identifier) ã«ãã£ãŠèå¥ãããå¿ èŠããããŸãããããã®èå¥åã«ãããã¯ã©ã€ã¢ã³ãã¯ãªãœãŒã¹ã«ç°¡åã«ã¢ã¯ã»ã¹ããŠæäœã§ããããã«ãªããŸãã
- HTTP ã¡ãœããã®äžè²«ãã䜿çš: RESTful API ã¯ãæšæºã® HTTP ã¡ãœãã (GETãPOSTãPUTãDELETE) ãäžè²«ããŠæ£ãã䜿çšããŠããªãœãŒã¹ã«å¯Ÿããã¢ã¯ã·ã§ã³ã衚ãå¿ èŠããããŸãããã®äžè²«æ§ã«ãããAPI ã®äœ¿ãããããšäºæž¬å¯èœæ§ãåäžããŸãã
ãããã®ååã«åŸãããšã§ãRESTful API éçºè ã¯ãã¯ã©ã€ã¢ã³ã/ãµãŒããŒéä¿¡ã®ããã®ä¿¡é Œæ§ãæ¡åŒµæ§ãä¿å®æ§ã®é«ãåºç€ãæäŸãã Web ãµãŒãã¹ãäœæã§ããŸãã
REST API ã¢ãŒããã¯ãã£
REST API ã¢ãŒããã¯ãã£ã¯ãã·ã³ãã«ããš Web æšæºãžã®æºæ ãéèŠãã Representational State Transfer (REST) ã¢ãã«ååãäžå¿ã«å±éããŠããŸãã RESTful ã¢ãŒããã¯ãã£ã§ã¯ãWeb ãµãŒãã¹ã¯ã¯ã©ã€ã¢ã³ããå©çšã§ããäžé£ã®endpointsãå ¬éãããããããåå¥ã®ãªãœãŒã¹ãŸãã¯ãªãœãŒã¹ã®ã³ã¬ã¯ã·ã§ã³ã«å¯Ÿå¿ããŸãã REST ã®äžå¿ååã«åŸãããšã§ãéçºè ã¯ãœãããŠã§ã¢ ã·ã¹ãã ã®çµ±åãåäžããããã¹ã±ãŒã©ãã«ã§ä¿å®å¯èœãª API ãæ§ç¯ã§ããŸãã REST API ã¢ãŒããã¯ãã£ã¯ã¯ã©ã€ã¢ã³ã/ãµãŒã㌠ã¢ãã«ã«äŸåããŠããŸããããã§ã
- ã¯ã©ã€ã¢ã³ã: ãã¬ãŒã³ããŒã·ã§ã³å±€ãšãŠãŒã¶ãŒå¯Ÿè©±ãæ åœããã¢ããªã±ãŒã·ã§ã³ã®ã¯ã©ã€ã¢ã³ãåŽã®éšåã
- ãµãŒããŒ: ã¢ããªã±ãŒã·ã§ã³ã®ãµãŒããŒåŽéšåã«ã¯ãããžãã¹ ããžãã¯ãããŒã¿ ã¢ã¯ã»ã¹ãæ ŒçŽãããAPI endpointsãä»ããŠã¯ã©ã€ã¢ã³ãã«ãªãœãŒã¹ãæäŸããŸãã API ã¯ã©ã€ã¢ã³ããšãµãŒããŒã¯ãã¹ããŒãã¬ã¹ ãããã³ã« (é垞㯠HTTP) ã䜿çšããŠéä¿¡ããæšæºåããã圢åŒã§ãªã¯ãšã¹ããéä¿¡ããå¿çãåä¿¡ããããšãã§ããŸããã¯ã©ã€ã¢ã³ãããéä¿¡ãããåãªã¯ãšã¹ãã«ã¯ããµãŒããŒããªã¯ãšã¹ããåŠçããããã«å¿ èŠãªãã¹ãŠã®æ å ±ãå«ãŸããŠããããããµãŒããŒã¯ãªã¯ãšã¹ãéã§ã¯ã©ã€ã¢ã³ãã«é¢ããç¶æ æ å ±ãç¶æããå¿ èŠããããŸããã
REST API ã¢ãŒããã¯ãã£ã«ã¯ã次ã®ãããªéèŠãªã³ã³ããŒãã³ããããã€ããããŸãã
- ãªãœãŒã¹: RESTful API ã®äž»èŠãªæ§æèŠçŽ ã§ãããªãœãŒã¹ã¯ãã¯ã©ã€ã¢ã³ããå©çšã§ããã·ã¹ãã å ã®ãšã³ãã£ãã£ã衚ããŸãããªãœãŒã¹ã¯ãUniform Resource Identifier (URI) ã䜿çšããŠäžæã«èå¥ãããŸãã
- HTTP ã¡ãœãã: ã¯ã©ã€ã¢ã³ãã¯ãGETãPOSTãPUTãDELETE ãªã©ã®æšæº HTTP ã¡ãœããã䜿çšããŠãµãŒããŒäžã®ãªãœãŒã¹ãšå¯Ÿè©±ããŸãããããã®æäœã¯ãããŒã¿ã®æ°žç¶åã§äœ¿çšããã CRUD (äœæãèªã¿åããæŽæ°ãããã³åé€) ã¡ãœããã«å¯Ÿå¿ããŸãã
- ã¡ãã£ã¢ ã¿ã€ã: REST API ã¯ãJSONãXMLããã¬ãŒã³ ããã¹ããªã©ã®ãªãœãŒã¹ã衚ãããã®è€æ°ã®ã¡ãã£ã¢ ã¿ã€ãããµããŒãããŸãã JSON ã¯æãäžè¬çãªåœ¢åŒã§ããããã®ã·ã³ãã«ããšèªã¿ãããã®ããã«éžã°ããŠããŸãã
- ã¹ããŒãã¬ã¹éä¿¡: REST API ã¢ãŒããã¯ãã£ã§ã¯ãã¯ã©ã€ã¢ã³ãããã®åãªã¯ãšã¹ãã«ã¯ããã®åŠçã«å¿ èŠãªãã¹ãŠã®ããŒã¿ãå«ãŸããŠããããµãŒããŒã¯ãªã¯ãšã¹ãéã®ã¯ã©ã€ã¢ã³ã ã³ã³ããã¹ããä¿åããŸããããã®ã¹ããŒãã¬ã¹æ§ã«ãããAPI ã®ã¹ã±ãŒã©ããªãã£ãšããã©ãŒãã³ã¹ãåäžããŸãã
ä»ã®ã¢ãŒããã¯ãã£ã§ã¯ãªã REST API ãéžæããçç±
REST API ã¯ãWeb ãµãŒãã¹ãèšèšããéã®éçºè ã«ãšã£ãŠäžè¬çãªéžæè¢ãšãªã£ãŠããŸãã SOAP (Simple Object Access Protocol) ã XML-RPC ãªã©ã®ä»ã®ã¢ãŒããã¯ãã£ãšæ¯èŒããå©ç¹ã¯æ¬¡ã®ãšããã§ãã
- ã·ã³ãã«ã: REST API ã¯æšæºã® HTTP ã¡ãœããã䜿çšããè€æ°ã®ãªãœãŒã¹è¡šçŸåœ¢åŒããµããŒãããŠãããããã«ã¹ã¿ã ãããã³ã«ãè€é㪠XML ã¡ãã»ãŒãžã³ã°ã«äŸåãã SOAP ã XML-RPC ãããå®è£ ãçè§£ã䜿çšã容æã§ãã
- ã¹ã±ãŒã©ããªãã£: RESTful API ã¯ã¹ããŒãã¬ã¹ã§ãããããããç°¡åã«æ°Žå¹³æ¹åã«æ¡åŒµã§ããŸããã¯ã©ã€ã¢ã³ãã®æ°ãšããŒã¿éãå¢å ããŠããã¢ãŒããã¯ãã£ãå€§å¹ ã«å€æŽããããšãªããã·ã¹ãã ã«ãµãŒããŒã远å ã§ããŸãã
- ããã©ãŒãã³ã¹: ã¹ããŒãã¬ã¹ãªæ§è³ªãšãã£ãã·ã¥ã®äœ¿çšã«ãããRESTful API ã¯ä»ã®ã¢ãŒããã¯ãã£ãããããã©ãŒãã³ã¹ãåªããŠããããšããããããŸãããã£ãã·ã¥ã䜿çšãããšãã¯ã©ã€ã¢ã³ãã¯ãµãŒããŒããã®å¿çãä¿åã§ãããããç¹°ãè¿ãã®èŠæ±ã®å¿ èŠæ§ãæžããã¹ã«ãŒããããåäžããŸãã
- æè»æ§: REST API èšèšã¯è€æ°ã®ããŒã¿åœ¢åŒããµããŒãããŠãããããã¯ã©ã€ã¢ã³ãã¯ããŒãºã«æãé©ãã圢åŒã§ãªãœãŒã¹ãå©çšã§ããŸãããã®æè»æ§ã«ãããããŸããŸãªãã©ãããã©ãŒã ããã¯ãããžãŒéã®çµ±åãç°¡çŽ åãããŸãã
- Web æšæºãžã®æºæ : REST ã®ååã¯ãWeb ã®ã¢ãŒããã¯ãã£ååãšå¯æ¥ã«äžèŽããŠããŸãããããã®ååã«åŸãããšã§ãREST API ã¯ãã£ãã·ã¥ ã¡ã«ããºã ãã³ã³ãã³ãé ä¿¡ãããã¯ãŒã¯ (CDN)ãSSL/TLS ãªã©ã®ã»ãã¥ãªãã£æ©èœãªã©ã® Web ã®æ¢åã®ã€ã³ãã©ã¹ãã©ã¯ãã£ã掻çšã§ããŸãã
REST API èšèšã«é¢ããäžè¬çãªèª²é¡
RESTful API ã䜿çšããããšã«ã¯å€ãã®å©ç¹ããããŸãããéçºè ã¯èšèšãšå®è£ ã®ããã»ã¹äžã«äŸç¶ãšããŠèª²é¡ã«çŽé¢ããå¯èœæ§ããããŸããäžè¬çãªèª²é¡ã«ã¯æ¬¡ã®ãããªãã®ããããŸãã
- ããŒãžã§ãã³ã°: API ãé²åããã«ã€ããŠãå€ãããŒãžã§ã³ã䜿çšããŠããã¯ã©ã€ã¢ã³ãã«å¯ŸããŠäžäœäºææ§ã確ä¿ããããšãå°é£ã«ãªãå ŽåããããŸããããŒãžã§ã³ç®¡ç㯠API ã®å€æŽã®ç®¡çã«åœ¹ç«ã¡ãŸãããéçºè ã¯ãURI ã®ããŒãžã§ã³ç®¡çãã«ã¹ã¿ã ãªã¯ãšã¹ã ããããŒã®äœ¿çšãªã©ãAPI ã®ããŒãžã§ã³ç®¡çã«æé©ãªæ¹æ³ã決å®ããå¿ èŠããããŸãã
- èªèšŒãšèªå¯: REST API ãä¿è·ããã«ã¯ãé©åãªèªèšŒããã³èªå¯ã¡ã«ããºã ãå®è£ ããå¿ èŠããããŸãã Basic AuthãOAuthãJSON Web Tokens (JWT) ãªã©ã®ããã€ãã®æšæºã¡ãœããã䜿çšã§ããŸãããé©åãªã¢ãããŒããéžæããé©åãªå®è£ ã確ä¿ããããšã API ã»ãã¥ãªãã£ã«ãšã£ãŠéèŠã§ãã
- ã¬ãŒãå¶éãšã¯ã©ãŒã¿: ã¬ãŒãå¶éãšã¯ã©ãŒã¿ã匷å¶ãããšãAPI ã®éå°ãªäœ¿çšãä¹±çšã鲿¢ãããã¹ãŠã®ã¯ã©ã€ã¢ã³ãã«å ¬å¹³ãªã¢ã¯ã»ã¹ã確ä¿ã§ããŸãããããã®ã³ã³ãããŒã«ã®å®è£ ã¯å°é£ãªå Žåããããããéçºè ã¯ãæ£åœãªãŠãŒã¹ã±ãŒã¹ã«å¯Ÿå¿ããããã«å³å¯ããšæè»æ§ã®ãã©ã³ã¹ã«æ³šæããå¿ èŠããããŸãã
- äºææ§: ããŸããŸãªãã¯ãããžãŒããã©ãããã©ãŒã ãèŠä»¶ãæã€ããŸããŸãªã¯ã©ã€ã¢ã³ãã䜿çšã§ãã REST API ãèšèšããã®ã¯å°é£ãªå ŽåããããŸããåºãåãå ¥ããããŠããæšæºãšãã¹ã ãã©ã¯ãã£ã¹ã«æ³šæãæãããšã¯ãäºææ§ãšä¿å®æ§ã確ä¿ããã®ã«åœ¹ç«ã¡ãŸãã
- ãšã©ãŒåŠçãšããã¥ã¡ã³ã: REST API ãæåãããã«ã¯ãæç¢ºãªãšã©ãŒ ã¡ãã»ãŒãžãšå æ¬çãªããã¥ã¡ã³ããæäŸããããšãäžå¯æ¬ ã§ããé©åãªãšã©ãŒåŠçã«ãããã¯ã©ã€ã¢ã³ãã®æ··ä¹±ãé²ãããããã°ãšåé¡ã®è§£æ±ºã«å¿ èŠãªæéãççž®ã§ããŸãã
ãããã®èª²é¡ã«ãããããããRESTful API ã¢ãŒããã¯ãã£ãæ¡çšãããšããœãããŠã§ã¢ ã¢ããªã±ãŒã·ã§ã³ã®éçºãšçµ±åãåçåãããéçºè ãã¹ã±ãŒã©ãã«ã§ä¿å®æ§ã®é«ãã髿§èœã®ã·ã¹ãã ãæ§ç¯ã§ããããã«ãªããŸãã
REST API èšèšã®ãã¹ã ãã©ã¯ãã£ã¹
RESTful API ã®èšèšã¯é£ããå ŽåããããŸãããæ¬¡ã®ãã¹ã ãã©ã¯ãã£ã¹ã«åŸãããšã§ãã¯ã©ã€ã¢ã³ãã®ããŒãºãæºãããé©åã«æ§é åããã䜿ãããã API ãå®çŸã§ããŸãã
REST ååã«åŸã
API èšèšã REST ã¢ãŒããã¯ãã£ã®ååã«æºæ ããŠããããšã確èªããŠãã ãããã¹ããŒãã¬ã¹ãªãµãŒããŒå¯Ÿè©±ãç¶æããã¯ã©ã€ã¢ã³ã/ãµãŒããŒåé¢ã¢ãã«ã䜿çšããå¯èœãªå Žå㯠API å¿çã®ãã£ãã·ã¥å¯èœæ§ã確ä¿ããŸããéå±€åãããã¢ãŒããã¯ãã£ãäœæããŠãä¿å®æ§ãšæ¡åŒµæ§ãåäžãããŸãã
é©å㪠HTTP ã¡ãœããã䜿çšãã
ããŸããŸãª CRUD (äœæãèªã¿åããæŽæ°ãåé€) ã¢ã¯ã·ã§ã³ã«ã¯ãGETãPOSTãPUTãDELETE ãªã©ã®æšæº HTTP ã¡ãœããã䜿çšããŠãã ãããæ£ããã¡ãœããã䜿çšãããšãAPI ãããçŽæçã«ãªããGET ãªã¯ãšã¹ãã®ãã£ãã·ã¥ãªã©ã® HTTP ã®çµã¿èŸŒã¿æ©èœãå©çšã§ããããã«ãªããŸãã
GET /resources -> ãªãœãŒã¹ã®ãªã¹ããååŸããŸã
POST /resources -> æ°ãããªãœãŒã¹ã®äœæ
PUT /resources/:id -> æå®ããã ID ã§æ¢åã®ãªãœãŒã¹ãæŽæ°ããŸã
DELETE /resources/:id -> æå®ããã ID ã®ãªãœãŒã¹ãåé€ããŸã
æšæºã® HTTP ã¹ããŒã¿ã¹ ã³ãŒãã䜿çšãã
æšæºã® HTTP ã¹ããŒã¿ã¹ ã³ãŒããå©çšããŠãã¯ã©ã€ã¢ã³ãã®ãªã¯ãšã¹ããåŠçãããšãã«æå³ã®ããäžè²«ãããã£ãŒãããã¯ãã¯ã©ã€ã¢ã³ãã«æäŸããŸããããšãã°ãæåãããªã¯ãšã¹ãã«ã¯ 200 çªå°ãã¯ã©ã€ã¢ã³ãåŽã®ãšã©ãŒã«ã¯ 400 çªå°ããµãŒããŒåŽã®åé¡ã«ã¯ 500 çªå°ã䜿çšããŸãã
200 OK -> ãªã¯ãšã¹ãã¯æåããŸãã
201 äœæãããŸãã -> ãªãœãŒã¹ã¯æ£åžžã«äœæãããŸãã
204 ã³ã³ãã³ãããããŸãã -> ãªã¯ãšã¹ãã¯æåããŸããããè¿ãããŒã¿ããããŸãã (DELETE ãªã¯ãšã¹ãã«äœ¿çšãããŸã)
400 äžæ£ãªãªã¯ãšã¹ã -> ãªã¯ãšã¹ãã®åœ¢åŒãäžæ£ãç¡å¹ã§ã
401 Unauthorized -> ã¯ã©ã€ã¢ã³ãã«ã¯ãªãœãŒã¹ãžã®ã¢ã¯ã»ã¹ã«å¿
èŠãªèªèšŒæ
å ±ããããŸãã
404 èŠã€ãããŸãã -> èŠæ±ããããªãœãŒã¹ããµãŒããŒäžã«èŠã€ãããŸããã§ãã
500 å
éšãµãŒã㌠ãšã©ãŒ -> ãªã¯ãšã¹ãã®åŠçäžã«ãµãŒããŒåŽã®ãšã©ãŒãçºçããŸãã
ããŒãžã§ã³ç®¡çã®å®è£
ããŒãžã§ã³ç®¡çãéã㊠API ãžã®å€æŽã管çããäŒéããŸããããã¯ãæŽæ°ãŸãã¯æ¹åãè¡ããšãã«æ¢åã®ã¯ã©ã€ã¢ã³ããžã®äžæãé²ãã®ã«åœ¹ç«ã¡ãŸãã API ã®ããŒãžã§ã³ã URL (äŸ: /api/v1/resources) ãŸãã¯ã«ã¹ã¿ã ããã㌠(äŸ: X-API-Version: 1) ãšããŠæå®ããŸãã
ããŒãžããŒã·ã§ã³ãšãã£ã«ã¿ãªã³ã°ãå©çšãã
倧ããªããŒã¿ ã»ãããè¿ã API ã®å Žåã¯ãããŒãžããŒã·ã§ã³ãšãã£ã«ã¿ãªã³ã°ãå®è£ ããŠãåå¿çã§è¿ãããããŒã¿ã®éãå¶éããŸããããã«ãããããã©ãŒãã³ã¹ãåäžããã¯ã©ã€ã¢ã³ãã®åž¯åå¹ ã®äœ¿çšéãæå°éã«æããããŸãã
GET /resources?page=2&per_page=50 -> 1 ããŒãžããã 50 é
ç®ã®å¶éã§ 2 ããŒãžç®ãããªãœãŒã¹ãååŸããŸã
GET /resources?filter[status]=active -> ãã¢ã¯ãã£ããã¹ããŒã¿ã¹ã®ãªãœãŒã¹ãååŸããŸã
API ãä¿è·ãã
é©åãªèªèšŒããã³èªå¯ã¡ã«ããºã ã䜿çšã㊠API ãä¿è·ããäžæ£ã¢ã¯ã»ã¹ãããŒã¿äŸµå®³ãé²ããŸããèŠä»¶ã«å¿ããŠãOAuth2ãAPI ããŒãJWT (JSON Web ããŒã¯ã³)ããŸãã¯ãã®ä»ã®ã«ã¹ã¿ã ãããã³ã«ãªã©ã®æšæºã¡ãœããã䜿çšããŸãã
æç¢ºã§è©³çްãªããã¥ã¡ã³ããæäŸãã
endpoints ãHTTP ã¡ãœãããå ¥åãã©ã¡ãŒã¿ãå¿ç圢åŒããšã©ãŒ ã³ãŒãã®è©³çްãå«ããAPI ã®å æ¬çãªããã¥ã¡ã³ããæäŸããŸããåªããããã¥ã¡ã³ãã¯ãéçºè ã API ãè¿ éã«çè§£ããŠçµ±åããã®ã«åœ¹ç«ã¡ããµããŒã ãªã¯ãšã¹ããæžãããå°å ¥ãä¿é²ããŸãã
AppMaster.io : REST API ãšã®çµ±åã®èª²é¡ã«å¯ŸåŠãã
RESTful API ã®èšèšãšçµ±åã¯è€éãªå ŽåããããŸããã AppMaster.io ããŒã³ãŒã ãã©ãããã©ãŒã ã䜿çšãããšãçµ±åã®èª²é¡ãšéçºã®åŽåãå€§å¹ ã«è»œæžã§ããŸãã
AppMaster.io ã¯ããŠãŒã¶ãŒã REST API endpointsèšèšãšç®¡çãªã©ã®ããã¯ãšã³ã ã¢ããªã±ãŒã·ã§ã³ãèŠèŠçã«äœæã§ããããã«ãã匷åãªno-codeãã©ãããã©ãŒã ã§ããããã«ãããREST API ã®äœæãä¿å®ãã¢ããªã±ãŒã·ã§ã³ãžã®çµ±åã®ããã»ã¹ãé«éåãããå¹çãšã³ã¹ãå¹çãåäžããŸããããã«ã AppMaster.io ã¯ããµãŒããŒendpointsçšã® Swagger (OpenAPI) ããã¥ã¡ã³ãã®çæããµããŒãããä»ã®ã·ã¹ãã ããµãŒãã¹ãšã®çµ±åãããã«ç°¡çŽ åããŸãã
REST API éçºã«AppMaster.io ã䜿çšãããšã次ã®ã¡ãªãããåŸãããŸãã
- ã¢ããªã±ãŒã·ã§ã³ã®éçºãšå±éã®è¿ éå - 30 ç§ä»¥å ã«ã¢ããªã±ãŒã·ã§ã³ãçæããŸã
- ããã¯ãšã³ããWebãã¢ãã€ã« ã¢ããªã±ãŒã·ã§ã³ã®å¹ççãªãµããŒã - ãã©ãããã©ãŒã å šäœã§äžè²«ããç°¡çŽ åãããã¢ãããŒããæ¡çš
- æè¡çè² åµã®æé€ - ã¢ããªã±ãŒã·ã§ã³ãæåããåçæãããã¯ãªãŒã³ãªã³ãŒããä¿èšŒãããŸãã
- ã¹ã±ãŒã©ããªã㣠- AppMaster.io 㯠Go ã䜿çšããŠã¹ããŒãã¬ã¹ ããã¯ãšã³ã ã¢ããªã±ãŒã·ã§ã³ãçæã§ããããããšã³ã¿ãŒãã©ã€ãºãé«è² è·ã®ãŠãŒã¹ã±ãŒã¹ã«åãããŠæ¡åŒµæ§ãé«ããªããŸãã
AppMaster.io ã¯ãäžå°äŒæ¥ã§ãå€§äŒæ¥ã§ããREST API éçºããã»ã¹ãç°¡çŽ åããã³åçåããããã®å æ¬çã§å¹ççãªãœãªã¥ãŒã·ã§ã³ãæäŸããŸãã
ãããã質å
RESTful API (Representational State Transfer Application Programming Interface) ã¯ãREST ã¢ãŒããã¯ãã£ã®ã¢ãŒããã¯ãã£ååã«æºæ ãã Web ãµãŒãã¹ãäœæããã³ç®¡çããããã®èšèšã¹ã¿ã€ã«ã§ããããã«ãããéçºè ã¯ãGETãPOSTãPUTãDELETE ãªã©ã®æšæº HTTP ã¡ãœããã䜿çšããŠããµãŒããŒäžã®ãªãœãŒã¹ãäœæãèªã¿åããæŽæ°ãåé€ã§ããŸãã
RESTful API èšèšã®äž»ãªååã«ã¯ãã¹ããŒãã¬ã¹ ãµãŒããŒã®å¯Ÿè©±ãã¯ã©ã€ã¢ã³ããšãµãŒããŒã®åé¢ããã£ãã·ã¥å¯èœæ§ãéå±€åãããã·ã¹ãã ã¢ãŒããã¯ãã£ãäžæã®ãªãœãŒã¹èå¥ãHTTP ã¡ãœããã®äžè²«ãã䜿çšãå«ãŸããŸãã
RESTful API ã§äœ¿çšããã䞻㪠HTTP ã¡ãœããã¯ãGET (ãªãœãŒã¹ã®ååŸçš)ãPOST (æ°ãããªãœãŒã¹ã®äœæçš)ãPUT (æ¢åã®ãªãœãŒã¹ã®æŽæ°çš)ãããã³ DELETE (ãªãœãŒã¹ã®åé€çš) ã§ãã
RESTful API 㯠Web ãµãŒãã¹ã®ã¢ãŒããã¯ã㣠ã¹ã¿ã€ã«ã§ããã®ã«å¯ŸããSOAP (Simple Object Access Protocol) ã¯ã¡ãã»ãŒãžã³ã° ãããã³ã«ã§ãã RESTful API ã¯æšæºã® HTTP ã¡ãœããã䜿çšããJSON ãªã©ã®ããã·ã³ãã«ã§èªã¿ããã圢åŒã«äŸåããŸãããSOAP 㯠XML ã¡ãã»ãŒãžã䜿çšããç¬èªã®ã«ã¹ã¿ã ã¡ãœãããšåœ¢åŒãå®çŸ©ããŸãã
RESTful API ã¯ããã®ã·ã³ãã«ããæè»æ§ãã¹ã±ãŒã©ããªãã£ãããã©ãŒãã³ã¹ã«ãããä»ã®ã¢ãŒããã¯ãã£ããã奜ãŸããŸããè€æ°ã®ããŒã¿åœ¢åŒããµããŒãããŠãããå®è£ ãšä¿å®ãç°¡åã§ãææ°ã® Web ã¢ããªã±ãŒã·ã§ã³ãã¢ãã€ã« ã¢ããªã±ãŒã·ã§ã³ãšããŸã飿ºããŸãã
REST API èšèšã«é¢ããäžè¬çãªèª²é¡ã«ã¯ãããŒãžã§ã³ç®¡çãã»ãã¥ãªãã£ã®ç¢ºä¿ãèªèšŒãšèªå¯ã®åŠçãã¬ãŒãå¶éãšã¯ã©ãŒã¿ã®ç®¡çãããŸããŸãªã¯ã©ã€ã¢ã³ãããã©ãããã©ãŒã ãšã®äºææ§ã®ç¶æãªã©ãå«ãŸããŸãã
REST API èšèšã®ãã¹ã ãã©ã¯ãã£ã¹ã«ã¯ãREST ååã®éµå®ãé©å㪠HTTP ã¡ãœããã®äœ¿çšãæšæºã¹ããŒã¿ã¹ ã³ãŒãã®äœ¿çšãããŒãžã§ã³ç®¡çã®å©çšãããŒãžããŒã·ã§ã³ãšäžŠã¹æ¿ãã®å®è£ ãèªèšŒãšèªå¯ã«ãã API ã®ä¿è·ãæç¢ºã§è©³çްãªããã¥ã¡ã³ãã®æäŸãªã©ãå«ãŸããŸãã
AppMaster.io ã¯ããŠãŒã¶ãŒã REST API endpointsã®èšèšãªã©ã®ããã¯ãšã³ã ã¢ããªã±ãŒã·ã§ã³ãèŠèŠçã«äœæã§ããno-codeãã©ãããã©ãŒã ã§ãã AppMaster.io ã䜿çšãããšãéçºè ã¯ã¢ããªã±ãŒã·ã§ã³ã§ã® REST API ã®äœæãä¿å®ãçµ±åã®ããã»ã¹ãåçåã§ããŸãã


