ãã€ã¯ããµãŒãã¹ã®åçãªäžçã§ã¯ããããããã®ãå€æŽãããå¯èœæ§ããããããŸããŸãªãã¬ãŒã ã¯ãŒã¯ãã¢ãŒããã¯ãã£ã䜿çšããŠãããããã³ã³ããŒãã³ããå¥ã®èšèªã§æžãçŽãããšãã§ããŸãã å éšã®ã¡ã¿ã¢ã«ãã©ãŒãŒã«é¢ä¿ãªãããã€ã¯ããµãŒãã¹ãå€éšããæ°žç¶çã«å¯Ÿè©±ã§ããããã«ããããã«ãã³ã³ãã©ã¯ãã®ã¿ãå€æŽããªãã§ãã ããã ãããŠä»æ¥ã¯ãå¥çŽãèšè¿°ããããã®åœ¢åŒãéžæãããšããåé¡ã«ã€ããŠè©±ããç§ãã¡ãèŠã€ããææç©ãå ±æããŸãã
æçš¿ãæºåãããŸãã
ãã€ã¯ããµãŒãã¹ã Acronis Cyberââ Cloud ãéçºãããšããç§ãã¡ã¯ãããããéããããšã¯ã§ããªãããšã«æ°ã¥ããŸããã ãããŠããã€ã¯ããµãŒãã¹ã®ã€ã³ã¿ãŒãã§ã€ã¹ãè¡šãã³ã³ãã©ã¯ãã圢åŒåããããšãªãããã€ã¯ããµãŒãã¹ãèšèšããããšã¯äžå¯èœã§ãã
ãããã補åã«è€æ°ã®ã³ã³ããŒãã³ããå«ãŸããŠãããåèšéçºãå®æçãªæŽ»åã«ãªããšãããã»ã¹ã®æé©åã«ã€ããŠèããã«ã¯ããããªããªããŸãã ã€ã³ã¿ãŒãã§ã€ã¹ (ã³ã³ãã©ã¯ã) ãšå®è£ (ãã€ã¯ããµãŒãã¹) ã¯çžäºã«äžèŽããå¿ èŠããããç°ãªãã³ã³ããŒãã³ããåãããšãåãæ¹æ³ã§å®è¡ããå¿ èŠããããããããã¹ãŠã®æ±ºå®ãäžå çã«è¡ãææ決å®ããªããã°ãåããŒã ã¯æ¬¡ã®ããšã匷ããããããšã¯æããã§ããããããåŸãããã«äœåºŠãæéãè²»ãããŠãã ããã
Amazon ãã€ã¯ããµãŒãã¹ã®å³
ãžã¬ã³ããšã¯äœã§ãã? äºå®äžããã€ã¯ããµãŒãã¹ãæäœããã«ã¯ãHTTP Rest ãš Google ã® gRPC ã® XNUMX ã€ã®æ¹æ³ããããŸãã Google ã®ãã¯ãããžãŒ ã¹ã¿ãã¯ã«å·»ã蟌ãŸããããªãã£ãã®ã§ãHTTP Rest ãéžæããŸããã HTTP REST ã³ã³ãã©ã¯ãã®ã¢ãããŒã·ã§ã³ã¯ãRAML ãš OAS (以å㯠Swagger ãšããŠç¥ãããŠããŸãã) ã® XNUMX ã€ã®åœ¢åŒã®ããããã§èšè¿°ãããããšãå€ãããããã¹ãŠã®éçºããŒã ã¯æšæºã®ãããããéžæããå¿
èŠã«çŽé¢ããŠããŸãã ããããçµå±ã®ãšããããã®éžæãããã®ã¯éåžžã«é£ããå ŽåããããŸãã
ãªã泚éãå¿ èŠãªã®ã§ãããã?
泚éã¯ãå€éšãŠãŒã¶ãŒã HTTP ã€ã³ã¿ãŒãã§ãŒã¹ãéããŠãµãŒãã¹ã§äœãã§ããããç°¡åã«ç解ã§ããããã«ããããã«å¿ èŠã§ãã ã€ãŸããåºæ¬ã¬ãã«ã§ã¯ãã¢ãããŒã·ã§ã³ã«ã¯å°ãªããšãã䜿çšå¯èœãªãªãœãŒã¹ã®ãªã¹ãããã® HTTP ã¡ãœããããªã¯ãšã¹ãæ¬æããã©ã¡ãŒã¿ã®ãªã¹ããå¿ èŠãªããããŒãšãµããŒããããŠããããããŒã®è¡šç€ºãããã³æ»ãã³ãŒããšå¿ç圢åŒãå«ãŸããŠããå¿ èŠããããŸãã ã³ã³ãã©ã¯ãã®ã¢ãããŒã·ã§ã³ã®éåžžã«éèŠãªèŠçŽ ã¯ãå£é ã§ã®èª¬æ (ããã®ã¯ãšãª ãã©ã¡ãŒã¿ãŒããªã¯ãšã¹ãã«è¿œå ãããšäœãèµ·ããã?ãããã©ã®ãããªå Žåã«ã³ãŒã 400 ãè¿ãããã?ã) ã§ãã
ãã ããå€æ°ã®ãã€ã¯ããµãŒãã¹ãéçºããå Žåã¯ãæžã蟌ãŸããã¢ãããŒã·ã§ã³ããè¿œå ã®äŸ¡å€ãæœåºããå¿ èŠããããŸãã ããšãã°ãRAML/Swagger ã«åºã¥ããŠãèšå€§ãªæ°ã®ããã°ã©ãã³ã°èšèªã§ã¯ã©ã€ã¢ã³ã ã³ãŒããšãµãŒã㌠ã³ãŒãã®äž¡æ¹ãçæã§ããŸãã ãã€ã¯ããµãŒãã¹ã®ããã¥ã¡ã³ããèªåçã«åä¿¡ããŠãéçºè ããŒã¿ã«ã«ã¢ããããŒãããããšãã§ããŸã :)ã
æ§é åãããå¥çŽèª¬æã®äŸ
ããŸãäžè¬çã§ã¯ãããŸããããå¥çŽã®èª¬æã«åºã¥ããŠãã€ã¯ããµãŒãã¹ããã¹ãããç¿æ £ããããŸãã ã¢ãããŒã·ã§ã³ãšã³ã³ããŒãã³ãã®äž¡æ¹ãäœæããå Žåã¯ãããŸããŸãªã¿ã€ãã®å ¥åããŒã¿ã䜿çšããŠãµãŒãã¹ã®é©åæ§ããã§ãã¯ããèªåãã¹ããäœæã§ããŸãã ãµãŒãã¹ã¯ã¢ãããŒã·ã§ã³ã«èšèŒãããŠããªãå¿çã³ãŒããè¿ããŸãã? æããã«ééã£ãããŒã¿ãæ£ããåŠçã§ããã§ãããã?
ãŸããã³ã³ãã©ã¯ããã®ãã®ã ãã§ãªããã¢ãããŒã·ã§ã³ãå¯èŠåããããŒã«ãé«å質ã«å®è£ ãããŠããããããã€ã¯ããµãŒãã¹ã«ããäœæ¥ã®ç°¡çŽ åãå¯èœã§ãã ã€ãŸããã¢ãŒããã¯ããå¥çŽãå®æ§çã«èšè¿°ããå Žåãããã«åºã¥ããŠããã¶ã€ããŒãšéçºè ã¯è¿œå ã®æéã³ã¹ãããããã«ãµãŒãã¹ãä»ã®è£œåã«å®è£ ããŸãã
è¿œå ã®ããŒã«ãæå¹ã«ããããã«ãRAML ãš OAS ã®äž¡æ¹ã«ã¯ãæšæºã§æäŸãããŠããªãã¡ã¿ããŒã¿ãè¿œå ããæ©èœããããŸã (
äžè¬ã«ããã€ã¯ããµãŒãã¹ã®ã³ã³ãã©ã¯ãã䜿çšããéã®åµé æ§ã®äœå°ã¯éåžžã«å€§ããã§ã...å°ãªããšãçè«äžã¯ã
ããªããºããšããã®æ¯èŒ
çŸåšãã¢ã¯ããã¹ã®åªå éçºåéã¯ã¢ã¯ããã¹ ãµã€ã㌠ãã©ãããã©ãŒã ã®éçºã§ãã Acronis Cyberââ Platform ã¯ããµãŒãããŒã㣠ãµãŒãã¹ãš Acronis Cyberââ Cloud ããã³ãšãŒãžã§ã³ãéšåãçµ±åããæ°ãããã€ã³ãã§ãã RAML ã§èšè¿°ãããå éš API ã«ã¯æºè¶³ããŠããŸããããAPI ãå ¬éããå¿ èŠããããããäœæ¥ã«ã©ã®ã¢ãããŒã·ã§ã³æšæºã䜿çšããã®ãæé©ããšããéžæã®åé¡ãåã³çããŸããã
åœåã解決ç㯠2 ã€ããããã«èŠããŸãããæãäžè¬çãªéçºã¯ RAML ãš Swagger (ãŸã㯠OAS) ã§ããã ãããå®éã«ã¯ãå°ãªããšã 3 ã€ã§ã¯ãªããXNUMX ã€ä»¥äžã®éžæè¢ãããããšãå€æããŸããã
äžæ¹ã§ã¯ã匷åã§å¹ççãªèšèªã§ãã RAML ããããŸãã éå±€ãšç¶æ¿ãé©åã«å®è£ ãããŠããããããã®åœ¢åŒã¯å€ãã®èšè¿°ãå¿ èŠãšãã倧äŒæ¥ãã€ãŸã XNUMX ã€ã®è£œåã§ã¯ãªããã³ã³ãã©ã¯ãã®å ±ééšå (èªèšŒã¹ããŒã ãåãããŒã¿åããšã©ãŒæ¬äœ) ãæã€å€æ°ã®ãã€ã¯ããµãŒãã¹ãå¿ èŠãšãã倧äŒæ¥ã«é©ããŠããŸãã ã
ããããRAML ã®éçºè
ã§ãã Mulesoft ã¯ãéçºãé²ããŠãã Open API ã³ã³ãœãŒã·ã¢ã ã«åå ããŸããã
äžã€ã§ã¯ãªãã...
çµå±ã®ãšããããã¹ãŠã®ãªãŒãã³ãœãŒã¹ ãŠãŒãã£ãªãã£ã OAS 3.0 ã«æŽæ°ãããŠããããã§ã¯ãããŸããã Go ã®ãã€ã¯ããµãŒãã¹ã«ãšã£ãŠæãéèŠãªããšã¯ãé©å¿ãæ¬ åŠããŠããããšã§ãã
- èªèšŒã¹ããŒã ã®èª¬æãæ¹å
å®æãã JSONã¹ããŒãã®ãµããŒã- äŸãè¿œå ããæ©èœãã¢ããã°ã¬ãŒãããŸãã
ãã®ç¶æ³ã¯é¢çœããã®ã§ããæšæºãéžæãããšãã¯ãRAMLãSwagger 2ãããã³ Swagger 3 ãåå¥ã®ä»£æ¿æ段ãšããŠèæ ®ããå¿ èŠããããŸãã ãã ãããªãŒãã³ãœãŒã¹ ããŒã«ãé©åã«ãµããŒãããŠããã®ã¯ Swagger 2 ã ãã§ãã RAML ã¯éåžžã«æè»ã§è€éã§ãããSwagger 3 ã¯ã³ãã¥ããã£ã«ãããµããŒããäžååã§ãããããç¬èªã®ããŒã«ãŸãã¯åçšãœãªã¥ãŒã·ã§ã³ã䜿çšããå¿ èŠããããŸããããããã¯éåžžã«é«äŸ¡ã«ãªãåŸåããããŸãã
ããã«ãæ¢è£œã®ããŒã¿ã«ãªã©ãSwagger ã«å€ãã®åªããæ©èœãããå Žåã¯ã
ãã€ãŠãç§ãã¡ã¯ããæè»ãªèšèªãšã㊠RAML ã䜿ãå§ããŸãããããã®çµæãå€ãã®ããšãèªåãã¡ã§è¡ãå¿
èŠããããŸããã ããšãã°ããããžã§ã¯ãã® XNUMX ã€ã¯æ¬¡ã®ãŠãŒãã£ãªãã£ã䜿çšããŸãã
éžã¶å¿ èŠããããŸããïŒ
RAML ã®ãœãªã¥ãŒã·ã§ã³ã®ãšã³ã·ã¹ãã ã®å®æã«åãçµãã çµæãRAML ã Swagger 2 ã«å€æãããã¹ãŠã®èªååãæ€èšŒããã¹ããããã³ãã®åŸã®æé©åããã®äžã§å®è¡ããå¿ èŠããããšããçµè«ã«éããŸããã ããã¯ãRAML ã®æè»æ§ãš Swagger ã®ã³ãã¥ãã㣠ããŒã« ãµããŒãã®äž¡æ¹ã掻çšããè¯ãæ¹æ³ã§ãã
ãã®åé¡ã解決ããã«ã¯ãã³ã³ãã©ã¯ãå€æãæäŸãã XNUMX ã€ã®ãªãŒãã³ãœãŒã¹ ããŒã«ããããŸãã
oas-raml-ã³ã³ããŒã¿ãŒ ã¯çŸåšãµããŒããããŠããªããŠãŒãã£ãªãã£ã§ãã äœæ¥äžã«ãå€æ°ã®ãã¡ã€ã«ã«ãåæ£ãããè€é㪠RAML ã«å€ãã®åé¡ãããããšãããããŸããã ãã®ããã°ã©ã 㯠JavaScript ã§æžãããŠãããæ§æããªãŒã®ååž°çèµ°æ»ãå®è¡ããŸãã åçåä»ãã«ããããã®ã³ãŒããç解ããã®ãé£ãããªããããçæ»ã®ãŠãŒãã£ãªãã£çšã®ããããäœæããã®ã«æéãç¡é§ã«ããªãããšã«ããŸããããŠã§ããããŒãµãŒ - åãäŒç€Ÿã®ããŒã«ã§ããããããã®ãããããæ¹åã«å€æã§ãããšäž»åŒµããŠããŸãã çŸåšãŸã§ã«ãRAML 0.8ãRAML 1.0ãããã³ Swagger 2.0 ã®ãµããŒããçºè¡šãããŠããŸãã ãã ããç§ãã¡ã®èª¿æ»æç¹ã§ã¯ããã®ãŠãŒãã£ãªãã£ã¯ãŸã ãããŸããã§ãããé垞㫠湿ã£ãŠäœ¿ããªãã éçºè ã¯äžçš®ã®IR å°æ¥çã«æ°ããæšæºãè¿ éã«è¿œå ã§ããããã«ãªããŸãã ããããä»ã®ãšããããã¯ããŸããããŸããã
ç§ãã¡ãçŽé¢ããå°é£ã¯ããã ãã§ã¯ãããŸããã ãã€ãã©ã€ã³ã®ã¹ãããã® XNUMX ã€ã¯ããªããžããªããã® RAML ãä»æ§ã«å¯ŸããŠæ£ããããšãæ€èšŒããããšã§ãã ããã€ãã®ãŠãŒãã£ãªãã£ãè©ŠããŸããã é©ããããšã«ã圌ãã¯çãããŸããŸãªå Žæã§ããŸã£ããç°ãªãæªå£ã§ç§ãã¡ã®æ³šéã眵ããŸããã ãããŠãå¿ ãããèŠç¹ãçµã£ãŠããããã§ã¯ãããŸãã:)ã
æçµçã«ãç§ãã¡ã¯ä»ã§ã¯æ代é ãã«ãªã£ãŠããŸã£ããããžã§ã¯ãã«èœã¡çããŸãããããã®ãããžã§ã¯ãã«ãå€ãã®åé¡ããããŸãã (çªç¶ã¯ã©ãã·ã¥ããããæ£èŠè¡šçŸã䜿çšãããšãã«åé¡ãçºçãããããããšããããŸã)ã ãããã£ãŠãç¡æããŒã«ã«åºã¥ããŠæ€èšŒãšå€æã®åé¡ã解決ããæ¹æ³ãèŠã€ããããåçšãŠãŒãã£ãªãã£ã䜿çšããããšã«ããŸããã å°æ¥çã«ã¯ããªãŒãã³ãœãŒã¹ ããŒã«ãããæçããã«ã€ããŠããã®åé¡ã¯è§£æ±ºãããããªãå¯èœæ§ããããŸãã ãã®éããä»äžãããããã®äººä»¶è²»ãšæéã³ã¹ãã¯ãåçšãµãŒãã¹ã®ã³ã¹ããããéèŠã§ããããã«ç§ãã¡ã«ã¯æããŸããã
ãŸãšã
ããããããšãèžãŸããŠãç§ãã¡ã¯çµéšãå ±æããå¥çŽã説æããããã®ããŒã«ãéžæããåã«ããã®ããŒã«ã«äœãæ±ããã®ããã©ã®ãããã®äºç®ãæè³ããã€ãããªã®ããæ確ã«å®çŸ©ããå¿ èŠãããããšã«æ³šæããããšæããŸããã ãªãŒãã³ãœãŒã¹ã®ããšãå¿ããŠãããã§ãã¯ãå€æãæ€èšŒã«åœ¹ç«ã€ãµãŒãã¹ã補åããã§ã«å€æ°ååšããŸãã ãããããããã¯é«äŸ¡ã§ãããå Žåã«ãã£ãŠã¯éåžžã«é«äŸ¡ã§ãã 倧äŒæ¥ã®å Žåããã®ãããªã³ã¹ãã¯èš±å®¹ç¯å²ã§ãããæ°èäŒæ¥ã«ãšã£ãŠã¯å€§ããªè² æ ãšãªãå¯èœæ§ããããŸãã
åŸã§äœ¿çšããããŒã«ã®ã»ããã決å®ããŸãã ããšãã°ãã³ã³ãã©ã¯ãã衚瀺ããã ãã®å Žåã¯ãRAML ã§ã¯ãµãŒãã¹ãèªåã§æ§ç¯ããŠä¿å®ããå¿
èŠããããããçŸãã API ãåãã Swagger 2 ã䜿çšããæ¹ãç°¡åã§ãã
ã¿ã¹ã¯ãå¢ããã°å¢ããã»ã©ãããŒã«ã®å¿
èŠæ§ãåºãããŸããããŒã«ã¯ãã©ãããã©ãŒã ããšã«ç°ãªããŸããå°æ¥ã®ã³ã¹ããæå°éã«æããéžæãããããã«ãå©çšå¯èœãªããŒãžã§ã³ãããã«ç解ããããšããå§ãããŸãã
ããããä»æ¥ååšãããã¹ãŠã®çæ ç³»ã¯äžå®å šã§ããããšãèªèãã䟡å€ããããŸãã ãããã£ãŠã瀟å ã«ãããæè»ã«èããè¡šçŸã§ããããšããçç±ã§RAMLã§äœæ¥ããããšã奜ããã¡ã³ããéã«ãããæ確ã§ããããšããçç±ã§Swaggerã奜ããã¡ã³ãããå Žåã¯ã圌ãã«ä»»ããã®ãæåã§ããã©ã®åœ¢åŒã®ããŒã«ããã¡ã€ã«ã«ããå€æŽãå¿ èŠãªããã圌ãã¯ããã«æ £ããŠããããããæãã§ããŸãã
ç§ãã¡ã®çµéšã«é¢ããŠã¯ã次ã®æçš¿ã§ãRAML-Swagger ã¢ãŒããã¯ãã£ã«åºã¥ããŠã©ã®ãããªéçãã§ãã¯ãšåçãã§ãã¯ãå®æœããããå¥çŽããã©ã®ãããªããã¥ã¡ã³ããçæãããããããŠãããã©ã®ããã«æ©èœãããã«ã€ããŠèª¬æããŸãã
ç»é²ãŠãŒã¶ãŒã®ã¿ãã¢ã³ã±ãŒãã«åå ã§ããŸãã
ãã€ã¯ããµãŒãã¹ ã³ã³ãã©ã¯ãã«æ³šéãä»ããããã«äœ¿çšããèšèªã¯äœã§ãã?
-
RAML 0.8
-
RAML 1.0
-
ã¹ã¯ã¬ãŒ 2
-
OAS3 (å¥å)
-
éåç
-
ÐÑÑгПй
-
䜿çšããªã
100 人ã®ãŠãŒã¶ãŒãæ祚ããŸããã 24åã®ãŠãŒã¶ãŒãæ£æš©ããã
åºæïŒ habr.com