REST (Representational State Transfer) ã¯ããããã¯ãŒã¯åãããã¢ããªã±ãŒã·ã§ã³ãèšèšããããã®ã¢ãŒããã¯ã㣠ã¹ã¿ã€ã«ã§ããããã¯ãã³ã³ãã¥ãŒã¿ãŒç§åŠè ã®ã〠ãã£ãŒã«ãã£ã³ã°ã«ãã£ãŠ 2000 幎ã«åå£«è«æã§ç޹ä»ããããã以æ¥åºãæ¡çšããããã®ã·ã³ãã«ããä¿¡é Œæ§ãæ¡åŒµæ§ãèªããããŠããŸãã REST ååã¯ãWeb ãµãŒãã¹ãš APIãç¹ã«çžäºéçšæ§ãã¢ãžã¥ãŒã«æ§ãã¹ããŒãã¬ã¹æ§ã®ååã«æºæ ãã Web ãµãŒãã¹ãš API ã®éçºã«äœ¿çšãããŸãã
REST ã®æ žå¿ã¯ãWorld Wide Web ã®åºæ¬ååã«åºã¥ããŠãããHTTP ãããã³ã«ãšæšæº Web ãã¯ãããžã掻çšããŠã調åã®ãšããå šäœçãªã¢ãããŒããã·ã¹ãã èšèšã«æäŸããŸãããã®ã¢ãŒããã¯ã㣠ãã¿ãŒã³ã«ãããã¢ããªã±ãŒã·ã§ã³ã®ããã³ããšã³ã ã³ã³ããŒãã³ããšããã¯ãšã³ã ã³ã³ããŒãã³ããåé¢ãããGETãPOSTãPUTãDELETE ãªã©ã® HTTP ã¡ãœãããä»ããã³ã³ããŒãã³ãéã®ã·ãŒã ã¬ã¹ãªéä¿¡ãå¯èœã«ãªããŸãããã®é¢å¿äºã®åé¢ã«ããã¢ãžã¥ãŒã«æ§ãä¿é²ãããå ç¢ã§ä¿å®å¯èœãªéçºç°å¢ãæäŸãããŸãã
RESTful èšèšã«ãããéèŠãªæŠå¿µã® 1 ã€ã¯ããªãœãŒã¹ã®æŠå¿µã§ãããªãœãŒã¹ã¯ããªããžã§ã¯ããããã¥ã¡ã³ããã³ã¬ã¯ã·ã§ã³ãªã©ãã¢ããªã±ãŒã·ã§ã³å ã®ä»»æã®ãšã³ãã£ãã£ã衚ããUniform Resource Identifier (URI) ã䜿çšããŠèå¥ãããŸããåãªãœãŒã¹ã¯åºæã® URL ãéããŠã¢ã¯ã»ã¹ããã³æäœã§ãããããã¯ã©ã€ã¢ã³ãã¯å éšæ§é ãå®è£ ã«é¢ãã詳现ãªç¥èãå¿ èŠãšããã«ããªãœãŒã¹ãç°¡åã«çºèŠããŠæäœã§ããããã«ãªããŸããã¯ã©ã€ã¢ã³ãã¯æšæºã® HTTP ã¡ãœããã䜿çšããŠããããã®ãªãœãŒã¹ã«å¯Ÿã㊠CRUD (äœæãèªã¿åããæŽæ°ãåé€) æäœãå®è¡ã§ããããã察話ã¢ãã«ãããã«ç°¡çŽ åãããŸãã
RESTful API ãèšèšããå Žåãè«ççãªéå±€ãšæ§æãç¶æããã«ã¯ããªãœãŒã¹ãš URI ã®æç¢ºã§äžè²«ããåœåèŠåãäžå¯æ¬ ã§ããããã«ãããAPI ã®èªã¿ããããšçè§£ãããããåäžããã¯ã©ã€ã¢ã³ããšéçºè ã«ãšã£ãŠæœåšçãªæ··ä¹±ãšè€éãã軜æžãããŸããããã«ãREST ã®ã¹ããŒãã¬ã¹ååã«æºæ ããããšã«ãããã¯ã©ã€ã¢ã³ããããµãŒããŒãžã®åãªã¯ãšã¹ãã«ã¯ããµãŒããŒããªã¯ãšã¹ããçè§£ããŠåŠçããããã«å¿ èŠãªæ å ±ããã¹ãŠå«ãŸããŠããå¿ èŠããããŸãããã®ã¢ãããŒãã«ããããµãŒããŒã¯ã¯ã©ã€ã¢ã³ãã«é¢ããã»ãã·ã§ã³æ å ±ãç¶æ æ å ±ãç¶æããå¿ èŠããªããªããã¹ã±ãŒã©ããªãã£ãšä¿¡é Œæ§ãåäžããŸãã
RESTful ã¢ãŒããã¯ãã£ã®éèŠãªæ©èœã¯ãæšæºã®ã¡ãã£ã¢ ã¿ã€ãã䜿çšããŠãªãœãŒã¹ãšãã®ç¶æ ã衚ãããšã§ãã JSON (JavaScript Object Notation) ãš XML (eXtensible Markup Language) ã¯ãã¯ã©ã€ã¢ã³ããšãµãŒããŒéã®ããŒã¿ã®ãšã³ã³ãŒããšéä¿¡ã«æãäžè¬çã«äœ¿çšãããã¡ãã£ã¢ ã¿ã€ãã§ãããã®ããŒã¿è¡šçŸã®æšæºåã«ãããç°çš®ã·ã¹ãã éã®ããŒã¿äº€æããã³çµ±åã®ããã»ã¹ãå€§å¹ ã«ç°¡çŽ åãããéçºè ã¯æ¢åã®ã©ã€ãã©ãªãããŒã«ã掻çšããŠããŒã¿ãç°¡åã«è§£æããã³åŠçã§ããããã«ãªããŸãã
ããã¯ãšã³ãéçºã®ã³ã³ããã¹ãã§ã¯ãRESTful èšèšã¯ãã¢ããªã±ãŒã·ã§ã³ã®ããŸããŸãªããã³ããšã³ãããã³ããã¯ãšã³ã ã³ã³ããŒãã³ãéã®ã·ãŒã ã¬ã¹ãªéä¿¡ãšçžäºéçšæ§ãå¯èœã«ããäžã§éèŠãªåœ¹å²ãæãããŸããããã¯ãšã³ããWebãã¢ãã€ã« ã¢ããªã±ãŒã·ã§ã³ãäœæããããã®åŒ·å㪠ããŒã³ãŒã ããŒã«ã§ãã AppMaster ã®ãããªãã©ãããã©ãŒã ã¯ãRESTful API ãšãµãŒãã¹ã®è¿ éãªéçºãä¿é²ããŸããããŒã¿ ã¢ãã«ãšããžãã¹ ããã»ã¹ãèŠèŠçã«èšèšããããšã§ãéçºè 㯠REST ã®ååã«æºæ ããã¹ã±ãŒã©ãã«ã§ä¿å®å¯èœãªã¢ããªã±ãŒã·ã§ã³ãäœæã§ããŸãã
Go (golang) ã䜿çšããŠããã¯ãšã³ã ã¢ããªã±ãŒã·ã§ã³ãçæããAppMasterã®ã¢ãããŒãã¯ãVue3 ãã¬ãŒã ã¯ãŒã¯ã䜿çšãã Web ã¢ããªã±ãŒã·ã§ã³ã Kotlinã Jetpack Compose ã SwiftUIã䜿çšããã¢ãã€ã« ã¢ããªã±ãŒã·ã§ã³ãšãšãã«ã顧客ããšã³ã¿ãŒãã©ã€ãºããã³ãã€ãšã³ãã®ã¢ããªã±ãŒã·ã§ã³ãåŠçã§ããæŽç·Žããã髿§èœã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ã§ããããã«ããŸãã -ããŒããŠãŒã¹ã±ãŒã¹ãããã«ããµãŒããŒendpointsããã³ããŒã¿ããŒã¹ ã¹ããŒãç§»è¡ã¹ã¯ãªããçšã®AppMasterã®èªåçæããã Swagger (OpenAPI) ããã¥ã¡ã³ãã¯ãæç¢ºã§ç°¡æœãªææ°ã® API ããã¥ã¡ã³ããæäŸããããšã§ãéçºãšã¯ã¹ããªãšã³ã¹ãããã«åŒ·åããŸãã
REST (Representational State Transfer) ã¯ããœãããŠã§ã¢ ã¢ããªã±ãŒã·ã§ã³ã®èšèšãšæ§ç¯ã®æ¹æ³ã«é©åœããããããã¢ãŒããã¯ã㣠ã¹ã¿ã€ã«ã§ãã REST ã¯ããªãœãŒã¹ãã¹ããŒãã¬ã¹æ§ãããã³æšæºã¡ãã£ã¢ ã¿ã€ãã®äœ¿çšã®ååã«åŸãããšã«ãããã¢ãžã¥ãŒã«åŒã§ä¿å®å¯èœã§ã¹ã±ãŒã©ãã«ãªã¢ããªã±ãŒã·ã§ã³ã®éçºãä¿é²ããŸãã AppMasterã®ãããªãã©ãããã©ãŒã ã¯ãRESTful ããã¯ãšã³ã ã¢ããªã±ãŒã·ã§ã³ã®æ§ç¯ããã»ã¹ãç°¡çŽ åãããã©ãããã©ãŒã ãå®è£ ãšå±éã®è€éããåŠçããªãããéçºè ãããžãã¹ ããžãã¯ãšæ©èœã«éäžã§ããããã«ããŸãã