REST (Representational State Transfer) ã¯ãã€ã³ã¿ãŒãããäžã§ççµåãããã¢ããªã±ãŒã·ã§ã³ãèšèšããããã®ã¢ãŒããã¯ã㣠ã¹ã¿ã€ã«ã§ããããã¯ãã¹ã±ãŒã©ãã«ãªåæ£ã·ã¹ãã ãæ§ç¯ããææ®µãšããŠãã〠ãã£ãŒã«ãã£ã³ã°ã«ãã£ãŠ 2000 幎ã®åå£«è«æã§åããŠå°å ¥ãããŸããããã以æ¥ãREST ã¯ããããã¯ãŒã¯ ã¢ããªã±ãŒã·ã§ã³ãç¹ã« Web ãµãŒãã¹ã API ãå®è£ ããããã®äž»èŠãªãã©ãã€ã ã® 1 ã€ã«ãªããŸããã
REST ã®æ žå¿ã¯ãã¹ããŒãã¬ã¹éä¿¡ã䜿çšããŠã¢ããªã±ãŒã·ã§ã³ãèšèšããæšæºåãããæ¹æ³ãä¿é²ããäžé£ã®å¶çŽã«äŸåããŠããŸãããããã®å¶çŽã¯æ¬¡ã®ãšããã§ãã
- ã¯ã©ã€ã¢ã³ããµãŒã㌠ã¢ãŒããã¯ãã£: ã¯ã©ã€ã¢ã³ããšãµãŒããŒéã®é¢å¿ãæç¢ºã«åé¢ããŸããã¯ã©ã€ã¢ã³ãã¯ãŠãŒã¶ãŒ ã€ã³ã¿ãŒãã§ã€ã¹ã«é¢äžãããµãŒããŒã¯åŠçãšããŒã¿ ã¹ãã¬ãŒãžãæ åœããŸãããã®åé¢ã«ãããã¯ã©ã€ã¢ã³ã ã³ã³ããŒãã³ããšãµãŒã㌠ã³ã³ããŒãã³ãã®ç¬ç«ããé²åãå¯èœã«ãªããŸãã
- ã¹ããŒãã¬ã¹éä¿¡: ãµãŒããŒã¯ãªã¯ãšã¹ãéã®ã¯ã©ã€ã¢ã³ãã®ç¶æ ã«é¢ããæ å ±ãä¿æããªããããã¯ã©ã€ã¢ã³ããããµãŒããŒãžã®åãªã¯ãšã¹ãã«ã¯ããªã¯ãšã¹ããçè§£ããŠåŠçããããã«å¿ èŠãªãã¹ãŠã®æ å ±ãå«ãŸããŠããå¿ èŠããããŸããããã«ãããã¹ã±ãŒã©ããªãã£ãåäžãããµãŒããŒå®è£ ãç°¡çŽ åãããŸãã
- ãã£ãã·ã¥å¯èœãªå¿ç: ãµãŒããŒã¯ãã®å¿çããã£ãã·ã¥å¯èœãšããŠããŒã¯ã§ãããããã¯ã©ã€ã¢ã³ãã仲ä»è ã¯ãããã®å¿çãä¿åããŠåå©çšããŠããã©ãŒãã³ã¹ãåäžãããããšãã§ããŸãã
- éå±€åã·ã¹ãã : ã¯ã©ã€ã¢ã³ããšãµãŒããŒã®éã«äžéã³ã³ããŒãã³ããå°å ¥ããŠãè¿œå æ©èœ (ããŒã ãã©ã³ã·ã³ã°ããã£ãã·ã¥ãªã©) ãæäŸããªããããããã®ã³ã³ããŒãã³ãã®è€éããã¯ã©ã€ã¢ã³ãããæœè±¡åã§ããŸãã
- åäžãªã€ã³ã¿ãŒãã§ã€ã¹: RESTful ã·ã¹ãã ã¯ãç¹å®ã®å¶çŽãšèšèšååã®ã»ããã«åŸãããšã§ãäžè²«æ§ã®ããåäžãªã€ã³ã¿ãŒãã§ã€ã¹ãå®è£ ããŸããããã«ãããéçºãç°¡çŽ åãããåå©çšæ§ãåäžããŸãã
- ã³ãŒã ãªã³ ããã³ã (ãªãã·ã§ã³): ãµãŒããŒã¯ãWeb ã¢ããªã±ãŒã·ã§ã³ã®ã³ã³ããã¹ãã§ã® JavaScript ãªãœãŒã¹ãªã©ãã¯ã©ã€ã¢ã³ãã®æ©èœãæ¡åŒµããå®è¡å¯èœã³ãŒããæäŸããå ŽåããããŸãã
REST ã®éèŠãªæ©èœã® 1 ã€ã¯ããªãœãŒã¹ãšãã®è¡šçŸãã¢ããªã±ãŒã·ã§ã³ã®äž»èŠãªæ§æèŠçŽ ãšããŠäœ¿çšããããšã§ãããªãœãŒã¹ã¯ãäžæã® URL ã«ãã£ãŠèå¥ããããã·ã¹ãã å ã®ã¢ãã¬ã¹æå®å¯èœãªãšã³ãã£ãã£ã§ãããªãœãŒã¹ã®è¡šçŸã¯ãé垞㯠JSON ã XML ãªã©ã®åœ¢åŒã§ãçŸåšã®ç¶æ ãã·ãªã¢ã«åãããã®ã§ãã RESTful ã¢ããªã±ãŒã·ã§ã³ã¯ãã¯ã©ã€ã¢ã³ããšãµãŒããŒéã§ãããã®è¡šçŸãéä¿¡ããããã®ãããã³ã«ãšã㊠HTTP ã䜿çšãããªãœãŒã¹ã«å¯Ÿããã¢ã¯ã·ã§ã³ãå®è¡ããããã«äœ¿çšãããç¹å®ã® HTTP ã¡ãœãã (GETãPOSTãPUTãDELETE ãªã©) ã䜿çšããŸãã
Web ãµã€ãéçºã®ã³ã³ããã¹ãã§ã¯ãææ°ã® Web ããŒã¹ ã¢ããªã±ãŒã·ã§ã³ã®ããã¯ããŒã³ãšããŠæ©èœãã Web API ã®äœæã« REST ããã䜿çšãããŸããããšãã°ã AppMasterno-codeãã©ãããã©ãŒã ã§æ§ç¯ããã Web ã¢ããªã±ãŒã·ã§ã³ã¯ãå€ãã®å Žåãããã³ããšã³ã ã³ã³ããŒãã³ããšããã¯ãšã³ã ã³ã³ããŒãã³ãéã®éä¿¡ã« RESTful API ã«äŸåããŸããåºç¯ãã€å æ¬çãªçµ±åéçºç°å¢ (IDE) ã§ããAppMaster䜿çšãããšãã¯ã©ã€ã¢ã³ãã¯ããŒã¿ ã¢ãã«ãããžãã¹ ããžãã¯ããŠãŒã¶ãŒ ã€ã³ã¿ãŒãã§ã€ã¹ãèŠèŠçã«äœæããããšã§ãã¹ã±ãŒã©ãã«ã§é«æ§èœãªã¢ããªã±ãŒã·ã§ã³ãéçºã§ããŸãããããã¯ãã¹ãŠ RESTful éä¿¡ãšãã¹ã ãã©ã¯ãã£ã¹ã«ãã£ãŠãµããŒããããŠããŸãã
æ¥çã§ã® REST ã®æ®åã«ãããRESTful API ã®æ§ç¯ãšäœ¿çšã®ããã»ã¹ãåçåããããã®ããŒã«ãã©ã€ãã©ãªã倧éã«ç»å ŽããŸãããããšãã°ãOpenAPI 仿§ (以å㯠Swagger ãšããŠç¥ãããŠããŸãã) ã¯ãRESTful API ãèšè¿°ããæšæºçãªæ¹æ³ãæäŸããèªåã³ãŒãçæãããã¥ã¡ã³ãåãããã³ãã¹ããå¯èœã«ããŸãã AppMasterãã®ä»æ§ãå©çšããŠããããžã§ã¯ãå ã®ãã¹ãŠã®ãµãŒããŒendpointsã® API ããã¥ã¡ã³ããèªåçã«çæããã³ç¶æããã¯ã©ã€ã¢ã³ãåŽã³ã³ããŒãã³ããšãµãŒããŒåŽã³ã³ããŒãã³ãã®äž¡æ¹ã«ãããäžè²«æ§ãšã·ãŒã ã¬ã¹ãªçµ±åãä¿èšŒããŸãã
REST ã«ã¯å€ãã®å©ç¹ããããŸãããæ¹å€ã代æ¿ã¢ãããŒãããªãããã§ã¯ãããŸãããäžéšã®éçºè ã¯ãREST ãã¹ããŒãã¬ã¹æ§ã峿 Œã«éµå®ããŠãããããç¹ã«ãªã¢ã«ã¿ã€ã ãŸãã¯é«åºŠã«ã€ã³ã¿ã©ã¯ãã£ããªã¢ããªã±ãŒã·ã§ã³ãæ±ãå Žåãéå¹çæ§ãšè€éãã®å¢å€§ã«ã€ãªããå¯èœæ§ããããšäž»åŒµããŠããŸãããããã®æžå¿µã«å¿ããŠãGraphQL ã gRPC ãªã©ã®ä»£æ¿ã¢ãŒããã¯ãã£ãç»å ŽããŸããããããããã«ç¬èªã®ãã¬ãŒããªããšèšèšå²åŠããããŸãã
ãã ããREST ã¯ãç¹ã«ã·ã³ãã«ãããã£ãã·ã¥å¯èœæ§ãããã³ã¹ã±ãŒã©ããªãã£ãæéèŠèŠãããã·ããªãªã§ã¯ãçŸä»£ã® Web ãµã€ãéçºã«ãšã£ãŠäžå¯æ¬ ãªæè¡ã§ããç¶ããŠããŸãã AppMasterã®ãããªãã©ãããã©ãŒã ãšãRESTful API éçºããŒã«ãšãªãœãŒã¹ãåºãå©çšã§ããããã«ãªã£ããããã§ãéçºè ã REST ã®åãæŽ»çšããŠãããã©ãŒãã³ã¹ãé«ããå埩åããããã¹ã±ãŒã©ãã«ãª Web ã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ããããšããã€ãŠãªãã»ã©ç°¡åã«ãªããŸããã