GraphQL API ã»ãã¥ãªãã£ãšã¯ïŒ
GraphQL APIã»ãã¥ãªãã£ãšã¯ãGraphQL APIãäžæ£ã¢ã¯ã»ã¹ãæªæã®ãããªã¯ãšã¹ããããŒã¿ã®é²åºããµãŒãã¹æåŠæ»æãããã³äžæ£å©çšããä¿è·ããããã«äœ¿çšããããã©ã¯ãã£ã¹ãšãã¯ãããžãŒã®ç·ç§°ã§ãã
ãªãŒãã³ãœãŒã¹ã®ã¯ãšãªèšèªã§ãã GraphQL ã¯ãã¯ã©ã€ã¢ã³ãïŒã³ã³ãã¥ãŒã¿ãé»è©±ããã©ãŠã¶ããœãããŠã§ã¢ããã°ã©ã ïŒã«ããªã¯ãšã¹ãããããŒã¿ã«é¢ããŠããªãã®æè»æ§ãäžããŸããåºå®ãããã¬ã¹ãã³ã¹ãè¿ãäºåå®çŸ©æžã¿ã®ãšã³ããã€ã³ãã«äŸåããã®ã§ã¯ãªããã¯ã©ã€ã¢ã³ãã¯å¿ èŠãªãã£ãŒã«ããšé¢é£ããŒã¿ãæå®ããã¯ãšãªãæ§ç¯ã§ããŸãã
ãã®æè»æ§ã«ãããAPIã¯éçºè ã«ãšã£ãŠããå¹ççã«ãªãå¯èœæ§ããããŸãããåæã«ç¹æã®ã»ãã¥ãªãã£äžã®èæ ®äºé ãçããŸããä¿è·ãäžååãªGraphQL APIã§ã¯ãæ»æè ãèšç®ã³ã¹ãã®é«ãã¯ãšãªãæ§ç¯ããããAPIã¹ããŒãã®æ©å¯æ§ã®é«ãéšåãçºèŠããããã¢ã¯ã»ã¹æš©ã®ãªãããŒã¿ã«ã¢ã¯ã»ã¹ãããã倧éã®æªæãããªã¯ãšã¹ããèªååãããããå¯èœæ§ããããŸãã
ãããã£ãŠã广ç㪠GraphQL ã»ãã¥ãªãã£ã«ã¯ãèªèšŒãèªå¯ãã¯ãšãª ã³ã³ãããŒã«ãå ¥åæ€èšŒãã¬ãŒãå¶éãã¢ããªã±ãŒã·ã§ã³ ã»ãã¥ãªãã£ãç£èŠãããã³å®å šãª API èšèšãçµã¿åãããå¿ èŠããããŸãã
GraphQL API ã»ãã¥ãªãã£ã¯ãã©ã®ãããªããŒã«ãšãã©ã¯ãã£ã¹ã§æ§æãããŠããŸããïŒ
GraphQL API ã»ãã¥ãªãã£ã¯ãGraphQL API ãéããŠå ¬éãããããŒã¿ããªãã¬ãŒã·ã§ã³ãã€ã³ãã©ã¹ãã©ã¯ãã£ãä¿è·ããŸããGraphQL API ã¯éåžžãå©çšå¯èœãªããŒã¿ã®åãšãã¯ã©ã€ã¢ã³ããå®è¡ã§ãããªãã¬ãŒã·ã§ã³ãèšè¿°ããã¹ããŒããå ¬éããŸããã¯ã©ã€ã¢ã³ãã¯ãå¿ èŠãªæ å ±ãã¢ã¯ã·ã§ã³ãèšè¿°ããã¯ãšãªãŸãã¯ãã¥ãŒããŒã·ã§ã³ãéä¿¡ããŸãã
GraphQL API ãä¿è·ããã«ã¯ã次ã®ãããªå¯ŸçãããŒã«ãé¢ä¿ããŸãïŒ
èªèšŒ
èªå¯
å ¥åæ€èšŒ
ã¯ãšãªã®æ·±ããšè€éãã®ã³ã³ãããŒã«
ã¹ããŒãããã³ã€ã³ããã¹ãã¯ã·ã§ã³ã®ç®¡çã
ã€ã³ãžã§ã¯ã·ã§ã³ä¿è·
ãšã©ãŒåŠç
ãã°ãšã¢ãã¿ãªã³ã°
ç®æšã¯ãGraphQL ã®æè»æ§ãå¶éããããšãªããæ£åœãªã¯ã©ã€ã¢ã³ãã«å¿ èŠãªæ©èœãæäŸããããšã§ãã
GraphQL API ã»ãã¥ãªãã£ã¯ã©ã®ããã«æ©èœããŸããïŒ
GraphQL ãªã¯ãšã¹ãã¯éåžžãã/graphqlãã®ãããªåäžã® HTTP ãšã³ããã€ã³ãã«å°éããŸãããªã¯ãšã¹ãã«ã¯ãã¯ã©ã€ã¢ã³ãããµãŒããŒã«å®è¡ãããããªãã¬ãŒã·ã§ã³ãèšè¿°ããã¯ãšãªãå«ãŸããŸããæ£åœãªã¯ã©ã€ã¢ã³ãã¯ããããã¯ããšãã®æäŸç¶æ³ã«é¢ããæ å ±ãèŠæ±ããå ŽåããããŸãã
GraphQLãµãŒããŒã¯ã¯ãšãªãè§£æããã¹ããŒãã«ç §ãããŠæ€èšŒããå¿ èŠãªãªãŸã«ããŒãåŒã³åºããé©åãªããŒã¿ãååŸããŠãã¬ã¹ãã³ã¹ãè¿ããŸãã
ãã®ããã»ã¹ã®ããã€ãã®æ®µéã§ã»ãã¥ãªãã£ã³ã³ãããŒã«ãé©çšã§ããŸãã
èªèšŒã¯ã¯ã©ã€ã¢ã³ããèå¥ããŸãã
èªèšŒã¯ã誰ãŸãã¯äœããªã¯ãšã¹ããè¡ã£ãŠãããã倿ããŸããGraphQL API ã¯ãã¢ããªã±ãŒã·ã§ã³ã®ã¢ãŒããã¯ãã£ã«å¿ããŠãã»ãã·ã§ã³CookieãAPI ããŒãOAuthããŸã㯠JSON Web TokensïŒJWTsïŒãªã©ã®ã¡ã«ããºã ã䜿çšã§ããŸãã
èªå¯ã«ãã£ãŠã¯ã©ã€ã¢ã³ããå®è¡ã§ããããšã決ãŸããŸã
èªèšŒã ãã§ã¯ååã§ã¯ãããŸãããã¯ã©ã€ã¢ã³ããèå¥ããåŸãã¢ããªã±ãŒã·ã§ã³ã¯ããã®IDãç¹å®ã®ãªããžã§ã¯ãããã£ãŒã«ãããŸãã¯ãªãã¬ãŒã·ã§ã³ãžã®ã¢ã¯ã»ã¹ãèš±å¯ãããŠãããã©ããã倿ããå¿ èŠããããŸãã
èªå¯ã¯ãGraphQL ãªãŸã«ããŒã®ã¿ã«äŸåãããã¹ããŒãã®äžéšãé ãããããã®ã§ã¯ãªããããžãã¹ã»ããžãã¯ã»ã¬ã€ã€ãŒã§é©çšããå¿ èŠããããŸãã
ã¯ãšãªã³ã³ãããŒã«ã¯é«ã³ã¹ããªãªãã¬ãŒã·ã§ã³ãå¶éããŸã
GraphQLã¯ãšãªã¯ãã¹ãã§ããŸããé©åãªã³ã³ãããŒã«ããªãå Žåãã¯ã©ã€ã¢ã³ãã¯ã倧éã® CPUãã¡ã¢ãªãããŒã¿ããŒã¹åŠçããŸãã¯ããŠã³ã¹ããªãŒã ãµãŒãã¹ã®åŒã³åºããå¿ èŠãšããã¯ãšãªãéä¿¡ããå¯èœæ§ããããŸãã
ã¢ããªã±ãŒã·ã§ã³ã¯ãã¯ãšãªã®æ·±ããå¹ ãè€éãããŸãã¯ã³ã¹ããåæãã蚱容å¯èœãªå¶éãè¶ ãããªã¯ãšã¹ããæåŠã§ããŸãã
ã¬ãŒãå¶éã¯ãªã¯ãšã¹ãæ¶è²»ãå¶åŸ¡ããŸã
ã¬ãŒãå¶éã¯ãã¯ã©ã€ã¢ã³ãããªãã¬ãŒã·ã§ã³ãå®è¡ããé »åºŠãã³ã³ãããŒã«ã§ããŸããGraphQL ã§ã¯ãåã/graphqlãšã³ããã€ã³ãã«å¯Ÿãã2ã€ã®ãªã¯ãšã¹ãã§ãèšç®ã³ã¹ãã倧ããç°ãªãå¯èœæ§ããããããçµç¹ã«ã¯ HTTP ãªã¯ãšã¹ããåçŽã«æ°ããã ãã§ã¯ãªããããé«åºŠãªã³ã³ãããŒã«ãå¿ èŠã«ãªãå ŽåããããŸãã
ã¢ããªã±ãŒã·ã§ã³ã»ã»ãã¥ãªãã£ã®ã³ã³ãããŒã«ã¯æªæã®ãããã©ãã£ãã¯ãæ€æ»ããŸãã
Web ã¢ããªã±ãŒã·ã§ã³ãã¡ã€ã¢ãŠã©ãŒã«ïŒWAFïŒãŸãã¯Web ã¢ããªã±ãŒã·ã§ã³ããã³API ä¿è· ãã©ãããã©ãŒã ã¯ãã€ã³ãžã§ã¯ã·ã§ã³ã®ãããªæ»æããã®ä»ã®æªæã®ãããã€ããŒãã«ã€ããŠãªã¯ãšã¹ããæ€æ»ãããããã GraphQL ã¢ããªã±ãŒã·ã§ã³ã«å°éããåã«æ€åºã§ããŸãã
ã¢ãã¿ãªã³ã°ã«ãã£ãŠç°åžžãªåäœãæ€åºãããŸãã
ãã°ãšã»ãã¥ãªãã£ãã¬ã¡ããªã«ãããäºæããªãã¯ãšãªãã¿ãŒã³ãç¹°ãè¿ãããèªå¯ã®å€±æãç°åžžã«é«ã³ã¹ããªãªã¯ãšã¹ããæªæã®ãããããããŸãã¯ãã©ãã£ãã¯ã¹ãã€ã¯ãæããã«ãªãããšããããŸãããããã®ã³ã³ãããŒã«ãçµã¿åãããããšã§ãGraphQL APIã®åšå²ã«å€å±€é²åŸ¡ãæäŸããŸãã
GraphQL API ã»ãã¥ãªãã£ãå¿ èŠãªçç±
GraphQLã«ãã£ãŠAPIãæ¬è³ªçã«å®å šã§ãªããªãããã§ã¯ãããŸããããã ããGraphQLã匷åã«ããŠããæ©èœã®äžéšã¯ãåŸæ¥ã®REST APIãšã¯ç°ãªãã»ãã¥ãªãã£äžã®èæ ®äºé ãçã¿åºããŸãã
以äžã¯ãGraphQLã®æ§è³ªã«ãã£ãŠçãããªã¹ã¯ãšãGraphQL APIã»ãã¥ãªãã£ãéåžžã«éèŠã§ããçç±ã§ãã
ã¯ã©ã€ã¢ã³ãã¯ã¯ãšãªãå€§å¹ ã«ã³ã³ãããŒã«ã§ããŸãã
REST API ã§ã¯ããµãŒããŒã¯äžè¬ã«ããããããæ±ºããããããŒã¿æ§é ãè¿ããšã³ããã€ã³ããå®çŸ©ããŸãã代ããã«ãGraphQL ã§ã¯ãã¯ã©ã€ã¢ã³ããå¿ èŠãšãããã£ãŒã«ããšãªã¬ãŒã·ã§ã³ã·ãããæå®ã§ããŸããé©åãªå¶éããªããšãæªæã®ããã¯ã©ã€ã¢ã³ãããã®æè»æ§ãå©çšããŠãé«ã³ã¹ããŸãã¯æ¿«çšçãªã¯ãšãªãæ§ç¯ã§ããå¯èœæ§ããããŸãã
åäžã®ãšã³ããã€ã³ãã§å€ãã®ãªãã¬ãŒã·ã§ã³ãå ¬éã§ããŸãã
åŸæ¥ã®API ã»ãã¥ãªãã£ã§ã¯ãã»ãã¥ãªãã£ããªã·ãŒã®éèŠãªäžéšãšã㊠URL ãã¹ããã䜿çšãããŸããGraphQL ã§ã¯éåžžãå€ãã®ç°ãªãã¯ãšãªããã¥ãŒããŒã·ã§ã³ãåããšã³ããã€ã³ããä»ããŠã«ãŒãã£ã³ã°ãããŸãããã®ãããã»ãã¥ãªãã£ã»ã·ã¹ãã ã¯ã/graphqlãžã®ãã¹ãŠã®ãªã¯ãšã¹ããåããªãã¬ãŒã·ã§ã³ãŸãã¯ãªã¹ã¯ã衚ããŠãããšæ³å®ããããšã¯ã§ããŸããã
ã¯ãšãªã¯èšç®ã³ã¹ããé«ããªãå¯èœæ§ããããŸã
GraphQLã§ã¯ããã¹ããããé¢ä¿ã䜿çšã§ããŸããæ·±ããã¹ããããã¯ãšãªãéåžžã«åºç¯ãªã¯ãšãªã¯ã倿°ã®ãªãŸã«ããŒåŒã³åºããããŒã¿ããŒã¹ãªãã¬ãŒã·ã§ã³ããŸãã¯ããŠã³ã¹ããªãŒã ãªã¯ãšã¹ããåŒãèµ·ããå¯èœæ§ããããŸããæ»æè ã¯ãã¢ããªã±ãŒã·ã§ã³ã®ãªãœãŒã¹ãæ¶è²»ããããã«ããã®åäœãæå³çã«æªçšããããšããããŸãã
èªå¯ã¯ãã现ããèšå®ã§ããããã«ãªããŸã
ãŠãŒã¶ãŒã¯ããã GraphQL ãªããžã§ã¯ãã«ã¯ã¢ã¯ã»ã¹ã§ããŠãå¥ã®ãªããžã§ã¯ãã«ã¯ã¢ã¯ã»ã¹ã§ããªãå Žåãããªããžã§ã¯ãã®äžéšã®ãã£ãŒã«ãã«ã¯ã¢ã¯ã»ã¹ã§ããŠãä»ã®ãã£ãŒã«ãã«ã¯ã¢ã¯ã»ã¹ã§ããªãå ŽåããããŸãããããã£ãŠãé¢é£ãããã¹ãŠã®ããŒã¿ã¢ã¯ã»ã¹ã»ãªãã¬ãŒã·ã§ã³ã«ã¯é©åãªèªå¯ãå¿ èŠã§ãã
ã¹ããŒãæ å ±ã¯æ»æè ã®å©ãã«ãªãå¯èœæ§ããããŸãã
GraphQL ã¯ã€ã³ããã¹ãã¯ã·ã§ã³ããµããŒãããŠãããããã«ããã¯ã©ã€ã¢ã³ãã¯ã¹ããŒãã«é¢ããæ å ±ãã¯ãšãªã§ããŸããããã¯éçºããŒã«ã«ãšã£ãŠéåžžã«æçšã§ãããã ããæ¬çªç°å¢ã§ã¯ãã¹ããŒãæ å ±ãå©çšå¯èœãªãªãã¬ãŒã·ã§ã³ãæ»æè ãææ¡ããã®ã«åœ¹ç«ã€å¯èœæ§ããããããç¡å¶éã®ã€ã³ããã¹ãã¯ã·ã§ã³ãå¿ èŠãã©ãããçµç¹ãæ éã«å€æããå¿ èŠããããŸãã
API ã¯èªååãããäžæ£å©çšãåŒãå¯ããŸã
æ»æè ã¯ãããã䜿çšããŠãåµå¯ãã¯ã¬ãã³ã·ã£ã«æ»æãé«ã³ã¹ããªãªãã¬ãŒã·ã§ã³ãžã®ã¯ãšãªãããŒã¿ã®ã¹ã¯ã¬ã€ãã³ã°ããŸãã¯å€§èŠæš¡ãªæªçšã®è©Šè¡ãå®è¡ã§ããŸãããããã£ãŠãGraphQL ã»ãã¥ãªãã£ã§ã¯ãè匱æ§ãšæ£åœãªæ©èœã®æªçšã®äž¡æ¹ã«å¯ŸåŠããå¿ èŠããããŸãã
GraphQL API ã®äžè¬çãªã»ãã¥ãªãã£ãªã¹ã¯ã¯äœã§ããïŒ
èªå¯ã®æ¬ é¥
APIã¯ãŠãŒã¶ãŒãæ£ããèªèšŒããŠãããã®ãŠãŒã¶ãŒãç¹å®ã®ãªããžã§ã¯ããŸãã¯ãã£ãŒã«ããžã®ã¢ã¯ã»ã¹ãèš±å¯ãããã¹ããã©ããã®æ€èšŒã«å€±æããå ŽåããããŸããããšãã°ãã¯ãšãªå ã®ãªããžã§ã¯ãèå¥åã倿Žããããšã§ããã顧客ãå¥ã®é¡§å®¢ã®å人æ å ±ãååŸã§ããŠã¯ãªããŸããã
éå°ãªã¯ãšãªã®æ·±ã
æ»æè ã¯ããŸããŸã倧éã®åŠçãå¿ èŠãšããæ·±ããã¹ããããã¯ãšãªãæ§ç¯ã§ããŸããæ·±ãã®å¶éã«ããããªã¯ãšã¹ããã¢ããªã±ãŒã·ã§ã³ã®åŠ¥åœãªãã¹ãèŠä»¶ãè¶ ããªãããã«ã§ããŸãã
ã¯ãšãªã®è€éããšãªãœãŒã¹æ¯æž
æ·±ãã ããåé¡ã§ã¯ãããŸãã - æ¯èŒçæµ ãã¯ãšãªã§ããæ°åã®ãªããžã§ã¯ããèŠæ±ããããé«ã³ã¹ãã®ãªãŸã«ããŒãåŒã³åºãããããå¯èœæ§ããããŸããã¯ãšãªã®ã³ã¹ããŸãã¯è€éãã®åæã«ããããªã¯ãšã¹ãã®å®è¡ã«å¿ èŠãªãªãœãŒã¹ãèŠç©ããããšã§ãããæ£ç¢ºãªä¿è·ãæäŸã§ããŸãã
ãããåŠçã®æªçš
GraphQL ã®å®è£ ã§ã¯ãè€æ°ã®ãªãã¬ãŒã·ã§ã³ããŸãšããŠéä¿¡ã§ããå ŽåããããŸãããããåŠçã«ãã£ãŠæ£åœãªã¢ããªã±ãŒã·ã§ã³ã®å¹çãåäžããå¯èœæ§ãããäžæ¹ã§ãæ»æè ã¯ãããå©çšããŠãåçŽãªãªã¯ãšã¹ãããŒã¹ã®ã¬ãŒãå¶éãåé¿ããããããå°ãªã HTTP ãªã¯ãšã¹ãå ã§å€§éã®ãªãã¬ãŒã·ã§ã³ãå®è¡ãããããããšããå¯èœæ§ããããŸãã
ã€ã³ãžã§ã¯ã·ã§ã³æ»æ
GraphQLãªãŸã«ããŒã¯ãå€ãã®å ŽåãããŒã¿ããŒã¹ããã®ä»ã®ããã¯ãšã³ãã»ã·ã¹ãã ãšããåãããŸãããŠãŒã¶ãŒå ¥åãããŠã³ã¹ããªãŒã ã§å®å šã§ãªãæ¹æ³ã§åŠçãããå ŽåãGraphQL ã¢ããªã±ãŒã·ã§ã³ã¯äŸç¶ãšã㊠SQL ã€ã³ãžã§ã¯ã·ã§ã³ãã³ãã³ãã€ã³ãžã§ã¯ã·ã§ã³ããã®ä»ã®ã€ã³ãžã§ã¯ã·ã§ã³æ»æã«å¯ŸããŠè匱ã§ããå¯èœæ§ããããŸãã
æ å ±æŒæŽ©
詳现ãªãšã©ãŒã«ãã£ãŠãã¹ã¿ãã¯ãã¬ãŒã¹ãå éšå®è£ ã®è©³çްããŸãã¯æ»æè ã«ãšã£ãŠæçšãªãã®ä»ã®æ å ±ãé²åºããå¯èœæ§ããããŸããã¹ããŒãã»ã€ã³ããã¹ãã¯ã·ã§ã³ããæå¹ã«ãªã£ãŠããå Žåã¯ãå©çšå¯èœãªåããªãã¬ãŒã·ã§ã³ã«é¢ããæ å ±ãé瀺ããå¯èœæ§ããããŸãã
ãµãŒãã¹æåŠæ»æ
é«ã³ã¹ããªã¯ãšãªãéå°ãªãšã€ãªã¢ã¹ããããåŠçãç¹°ãè¿ãã®ãªã¯ãšã¹ãããŸãã¯ãã®ä»ã®ãªãœãŒã¹éçŽåã®ãªãã¬ãŒã·ã§ã³ã䜿çšããŠãã¢ããªã±ãŒã·ã§ã³ã®ããã©ãŒãã³ã¹ãå¯çšæ§ãäœäžãããããšãã§ããŸãã
èªåã¹ã¯ã¬ã€ãã³ã°ãšäžæ£äœ¿çš
æè¡çã«æå¹ãªGraphQLã¯ãšãªã§ãã£ãŠããå€§èŠæš¡ã«èªåå®è¡ãããå Žåã¯æªçšçãšãªãå¯èœæ§ããããŸããBot Managementãšã¬ãŒãå¶éã¯ãè匱æ§ã«éç¹ã眮ããAPIã»ãã¥ãªãã£ãè£å®ããéèŠãªèŠçŽ ãšãªãå ŽåããããŸãã
GraphQL API ã»ãã¥ãªãã£ã®ãã¹ããã©ã¯ãã£ã¹ãšã¯äœã§ããïŒ
GraphQLã»ãã¥ãªãã£ã¯ãã¢ããªã±ãŒã·ã§ã³èªäœããå§ããã©ã³ã¿ã€ã ã»ãã¥ãªãã£ã³ã³ãããŒã«ã§åŒ·åããå¿ èŠããããŸãã
1. 匷åãªèªèšŒãå¿ é ã«ããŸãã
éå ¬éã®ãªãã¬ãŒã·ã§ã³ã¯ãé©åãªèªèšŒã¡ã«ããºã ã§ä¿è·ããŠãã ããã確ããªçç±ããªãã«ã¹ã¿ã èªèšŒã¹ããŒã ãæ§ç¯ããã®ã§ã¯ãªãã確ç«ãããIDæšæºãšå®å šãªã»ãã·ã§ã³ãŸãã¯ããŒã¯ã³åŠçã䜿çšããŠãã ããã
2. é¢é£ãããã¹ãŠã®ã¬ã€ã€ãŒã§èªå¯ãé©çšãã
èªèšŒæžã¿ãŠãŒã¶ãŒããã¹ããŒãã«ãã£ãŠå ¬éãããŠãããã¹ãŠã®ãªããžã§ã¯ãã«ã¢ã¯ã»ã¹ã§ãããšæ³å®ããªãã§ãã ãããèªå¯ã¯ã¢ããªã±ãŒã·ã§ã³ã®ããžãã¹ã«ãŒã«ã«çµã³ä»ããããŒã¿ã«ã¢ã¯ã»ã¹ãŸãã¯å€æŽããéã«äžè²«ããŠé©çšããå¿ èŠããããŸãã
3. ã¯ãšãªã®æ·±ããå¶éãã
ã¯ãšãªãã©ã®çšåºŠæ·±ããã¹ãã§ãããã«ã€ããŠã劥åœãªå¶éãèšå®ããŠãã ãããé©åãªæå€§å€ã¯ãã¢ããªã±ãŒã·ã§ã³ã®æ£åœãªèŠä»¶ã«ãã£ãŠç°ãªããŸãã
4. ã¯ãšãªã»ã³ã¹ãåæãå®è£ ãã
æ³å®ããããªãœãŒã¹æ¶è²»éã«åºã¥ããŠãã£ãŒã«ããŸãã¯ãªãã¬ãŒã·ã§ã³ã«ã³ã¹ããå²ãåœãŠãèšç®ãããã³ã¹ãã蚱容å¯èœãªãããå€ãè¶ ãããªã¯ãšã¹ããæåŠããŸããããã«ãããæ·±ãã®å¶éã ãã®å ŽåããããããææçŸ©ãªä¿è·ãæäŸã§ããŸãã
5. ã¬ãŒãå¶éãé©çšãã
ã¢ããªã±ãŒã·ã§ã³ã®ãªã¹ã¯ãšéåžžã®åŸé課éãã©ã³ã®ãã¿ãŒã³ã«å¿ããŠãã¯ã©ã€ã¢ã³ããã¬ãŒãå¶éããŸããå¯èœã§ããã°ããã¹ãŠã® HTTP ãªã¯ãšã¹ããåçã«æ±ãã®ã§ã¯ãªããå®éã® GraphQL ãªãã¬ãŒã·ã§ã³ãŸãã¯ãªãœãŒã¹ã³ã¹ããèæ ®ããŠãã ããã
6. ã³ã³ãããŒã«ã®ãããåŠçãšãšã€ãªã¢ã¹
ã¯ã©ã€ã¢ã³ããäžåºŠã«ãªã¯ãšã¹ãã§ãããªãã¬ãŒã·ã§ã³ããšã€ãªã¢ã¹ããŸãã¯ãã£ãŒã«ãã®æ°ã«é©åãªå¶éãèšå®ããŠãã ãããããã«ãããåŸæ¥ã®ã¬ãŒãå¶éãåé¿ããããæ³å®å€ã«é«ã³ã¹ããªã¯ãŒã¯ããŒããäœæãããããæ©äŒãæžããããšãã§ããŸãã
7. ãã¹ãŠã®å ¥åãæ€èšŒãã
GraphQL ã®åŒæ°ã¯ä¿¡é Œã§ããªãå ¥åãšããŠæ±ã£ãŠãã ãããã¹ããŒãæ€èšŒããã©ã¡ãŒã¿åãããããŒã¿ããŒã¹ã¯ãšãªãå®å šãª APIãã³ã³ããã¹ãã«å¿ããåºååŠçã䜿çšããŠãã ããã
8. ã€ã³ããã¹ãã¯ã·ã§ã³ã«ã€ããŠæå³çã«æ±ºå®ããŸã
ã€ã³ããã¹ãã¯ã·ã§ã³ã¯éçºãããŒã«ã«ãšã£ãŠæçšã§ãããæ¬çªç°å¢ã§ã®ã¢ã¯ã»ã¹ã¯çµç¹ã®èŠä»¶ã«äžèŽããŠããå¿ èŠããããŸããã€ã³ããã¹ãã¯ã·ã§ã³ãç¡å¹åãŸãã¯å¶éããŠãèªå¯ã®ä»£ããã«ã¯ãªããŸããããäžå¿ èŠãªæ å ±é²åºãæžããããšã¯ã§ããŸãã
9. éå°ãªãšã©ãŒè©³çްãé¿ãã
ã¹ã¿ãã¯ãã¬ãŒã¹ãããŒã¿ããŒã¹æ å ±ãå éšãµãŒãã¹ã®è©³çްããŸãã¯ãã®ä»ã®æ©å¯æ§ã®é«ãå®è£ æ å ±ãå ¬éããããšãªããæ£åœãªã¯ã©ã€ã¢ã³ãã«æçšãªãšã©ãŒãè¿ããŸãã
10. ã¿ã€ã ã¢ãŠãã䜿çšãã
ã¯ãšãªããµãŒããŒãªãœãŒã¹ãç¡æéã«æ¶è²»ã§ããããã«ããŠã¯ãªããŸãããé©åãªå®è¡ãããŒã¿ããŒã¹ãããã³ããŠã³ã¹ããªãŒã ã»ãµãŒãã¹ã®ã¿ã€ã ã¢ãŠãã«ãããäºæããé«ã³ã¹ããªãªãã¬ãŒã·ã§ã³ã®åœ±é¿ãæããããšãã§ããŸãã
11. WAF ã§ GraphQL ãšã³ããã€ã³ããä¿è·ãã
WAF ã¯ãæªæã®ããã¢ããªã±ãŒã·ã§ã³ãªã¯ãšã¹ãã«å¯Ÿãã远å ã®ã»ãã¥ãªãã£ã¬ã€ã€ãŒãæäŸã§ããŸããå®å šãª GraphQL èšèšã®ä»£ããã«ã¯ãªããŸããããè匱ãªã¢ããªã±ãŒã·ã§ã³ã³ã³ããŒãã³ãã«æ»æãå°éããã®ãé²ãã®ã«åœ¹ç«ã¡ãŸãã
12. GraphQL ãã©ãã£ãã¯ãç£èŠãã
ãªã¯ãšã¹ãçããšã©ãŒãèªèšŒã®å€±æããªãã¬ãŒã·ã§ã³ãã¿ãŒã³ãã¯ãšãªã®è€éããããã¯ãšã³ãã¬ã€ãã³ã·ããªãœãŒã¹æ¶è²»ã远跡ããŸãã广çãªãªãã¶ãŒãããªãã£ã«ããããŠãŒã¶ãŒã«é倧ãªåœ±é¿ãåã¶åã«ãæ»æãããã©ãŒãã³ã¹ã®åé¡ãç¹å®ãããããªããŸãã
GraphQL APIã»ãã¥ãªãã£ãå¿ èŠãšããã®ã¯èª°ã§ããïŒ
GraphQL API ãå ¬éããŠããçµç¹ã¯ãé©åãªã»ãã¥ãªãã£ã»ã³ã³ãããŒã«ãå®è£ ããå¿ èŠããããŸãããæ©å¯ããŒã¿ã倧éã®ãã©ãã£ãã¯ããŸãã¯äŸ¡å€ã®é«ãããžãã¹ã»ãªãã¬ãŒã·ã§ã³ãæ±ã API ã§ã¯ããã®å¿ èŠæ§ãç¹ã«éèŠã«ãªããŸãã
SaaSãããã€ããŒ
GraphQL ã䜿çšãããšãããã³ããšã³ãã»ã¢ããªã±ãŒã·ã§ã³ã¯è€éãªé¡§å®¢ããŒã¿ãã¢ããªã±ãŒã·ã§ã³ã»ããŒã¿ãå¹ççã«ååŸã§ããŸãããã«ãããã³ãç°å¢ã§ã¯ãããŒã¿ã顧客éã®å¢çãè¶ããªãããã«ããããã«ã匷åãªèªå¯ãäžå¯æ¬ ã§ãã
eã³ããŒã¹äŒæ¥
GraphQL API ã¯ããããã¯ãã«ã¿ãã°ã顧客ã¢ã«ãŠã³ããã«ãŒããåšåº«ããã§ãã¯ã¢ãŠãæ©èœããã®ä»ã®é«äŸ¡å€ã®ãªãã¬ãŒã·ã§ã³ãå ¬éããå¯èœæ§ããããŸãããããã® API ã¯ãã¹ã¯ã¬ã€ãã³ã°ãèªèšŒæ å ±æ»æãäžæ£è¡çºãå¯çšæ§æ»æãåŒãä»ããå¯èœæ§ããããŸãã
ãã¡ã€ãã³ã¹ãµãŒãã¹
éèæ å ±ãŸãã¯å人æ å ±ãæ±ã API ã«ã¯ã匷åãªèªèšŒãèªå¯ãç£èŠãäžæ£äœ¿çšã®é²æ¢ãå¿ èŠã§ãã
ã¡ãã£ã¢/åºçäŒæ¥
GraphQLã¯å€§èŠæš¡ãªã³ã³ãã³ãã©ã€ãã©ãªãžã®æè»ãªã¢ã¯ã»ã¹ãæäŸã§ããŸãããäžæ£ãªã¹ã¯ã¬ã€ãã³ã°ããªãœãŒã¹ã倧éã«æ¶è²»ããã¯ãšãªã®æšçã«ãªãå¯èœæ§ããããŸãã
ã¢ãã€ã«ããã³ã¢ããªã±ãŒã·ã§ã³éçºè
ç°ãªãã¯ã©ã€ã¢ã³ããç°ãªãããŒã¿ã®ãµãã»ãããå¿ èŠãšããå ŽåãGraphQL ã¯æçšã§ããã¢ãã€ã«ã¢ããªã±ãŒã·ã§ã³ã¯äŸç¶ãšããŠå ¬éå°éå¯èœãª API ãšéä¿¡ãããããæ»æè ã¯å ¬åŒã¢ããªã±ãŒã·ã§ã³ã䜿çšããã®ã§ã¯ãªããAPI ãšçŽæ¥ããåãã§ããå¯èœæ§ããããŸãã
ãã€ã¯ããµãŒãã¹ã䜿çšããäŒæ¥
GraphQL ã¯ãè€æ°ã®ããã¯ãšã³ããµãŒãã¹ã«ãŸãããçµ±å API ã¬ã€ã€ãŒãæäŸã§ããŸãããã®ããã1ã€ã® GraphQL ã€ã³ã¿ãŒãã§ãŒã¹ã倿°ã®å éšã·ã¹ãã ã«åæ£ããããŒã¿ãæ©èœãžã®ã¢ã¯ã»ã¹ãæäŸããå¯èœæ§ããããããã»ãã¥ãªãã£ã¯ç¹ã«éèŠã«ãªããŸãã
Fastlyã¯ã©ã®ããã«GraphQL APIã®ä¿è·ã«åœ¹ç«ã¡ãŸããïŒ
Fastly ã¯ãGraphQL ã¢ããªã±ãŒã·ã§ã³å ã§å®è£ ãããã³ã³ãããŒã«ãè£å®ã§ããè€æ°ã®ã»ãã¥ãªãã£æ©èœãæäŸããŸãã
Fastly Next-Gen WAF
Fastly Next-Gen WAF ã¯ãæªæã®ãããªã¯ãšã¹ããã Web ã¢ããªã±ãŒã·ã§ã³ãš API ãä¿è·ããŸããåŸæ¥ã®æ£èŠè¡šçŸãããã³ã°ã®ã¿ã«äŸåããã®ã§ã¯ãªããFastlyã®SmartParseæ€åºæè¡ã䜿çšããŠãªã¯ãšã¹ãã»ãã©ã¡ãŒã¿ãåæããæªæã®ããã¢ããªã±ãŒã·ã§ã³ã®åäœãç¹å®ããŸãã
ããã«ãããGraphQL API ãæšçãšããã€ã³ãžã§ã¯ã·ã§ã³ããã®ä»ã®ã¢ããªã±ãŒã·ã§ã³ã¬ã€ã€ãŒæ»æã«å¯Ÿãã远å ã®ä¿è·ã¬ã€ã€ãŒãæäŸã§ããŸãã
Fastly API ã»ãã¥ãªãã£æ©èœ
Fastly ã® Web ã¢ããªã±ãŒã·ã§ã³ããã³ API ä¿è· æ©èœã¯ãåŸæ¥ã® Web ã¢ããªã±ãŒã·ã§ã³ãšããã㊠API ãä¿è·ããããã§ãçµç¹ã«åœ¹ç«ã¡ãŸããã»ãã¥ãªãã£ããšããžã«é 眮ããããšã§ãæªæã®ãããªã¯ãšã¹ãã GraphQL ã¢ããªã±ãŒã·ã§ã³ãããŒã¿ããŒã¹ããŸãã¯ããã¯ãšã³ãã»ãµãŒãã¹ã®ãªãœãŒã¹ãæ¶è²»ããåã«æ€æ»ã§ããŸãã
ããã¯ã1ã€ã®ãªã¯ãšã¹ããäžæµã§å€§éã®åŠçãåŒãèµ·ããå¯èœæ§ããã GraphQL ã¢ãŒããã¯ãã£ã§ç¹ã«åœ¹ç«ã¡ãŸãã
Fastly Bot Management
GraphQLãªã¯ãšã¹ãã¯ã被害ãåŒãèµ·ããããã«è匱æ§ãæªçšããå¿ èŠã¯ãããŸãããæ»æè ã¯ãèªååãããã¯ã©ã€ã¢ã³ãã䜿çšããŠããŒã¿ãã¹ã¯ã¬ã€ãã³ã°ããããã¹ããŒãããªãã¬ãŒã·ã§ã³ã調æ»ããããã¢ã«ãŠã³ãæ»æã詊ã¿ãããé«ã³ã¹ããªã¯ãšãªãç¹°ãè¿ãåŒã³åºãããã§ããŸãã
Fastly Bot Management ã¯ãèªååããããã©ãã£ãã¯ã®ç¹å®ãšç®¡çãæ¯æŽããçµç¹ãäžèŠãªãããã«é©åãªã³ã³ãããŒã«ãé©çšããªãããæ£åœãªãŠãŒã¶ãŒãšæ¿èªãããèªååã®ã¢ã¯ã»ã¹ãç¶æã§ããããã«ããŸãã
ã¬ãŒãå¶é
Fastly ã®ã¬ãŒãå¶éæ©èœã¯ãä¿è·ãããã¢ããªã±ãŒã·ã§ã³ã«å°éããåã«éå°ãªãã©ãã£ãã¯ãå¶åŸ¡ããã®ã«åœ¹ç«ã¡ãŸããGraphQL ç°å¢ã§ã¯ããšããžã®ã¬ãŒãå¶éã¯ãã¯ãšãªã³ã¹ãåæãªã©ã®ã¢ããªã±ãŒã·ã§ã³ã¬ãã«ã®ã³ã³ãããŒã«ãè£å®ã§ããŸãããšããžã§ã¯éå°ãªãªã¯ãšã¹ãã¢ã¯ãã£ããã£ãå¶éã§ããäžæ¹ã§ãGraphQL ãµãŒããŒã§ã¯åãªãã¬ãŒã·ã§ã³ã®å®éã®ã³ã¹ããšèªå¯èŠä»¶ã«åºã¥ããŠããã詳现ãªããªã·ãŒãé©çšã§ããŸãã
Fastly DDoS Protection
GraphQL ãšã³ããã€ã³ãã¯ãç¹ã«æ»æè ãããã¯ãšã³ãã®ãªãœãŒã¹ãäžåè¡¡ã«æ¶è²»ããã¯ãšãªãç¹å®ããå Žåã«ãã¢ããªã±ãŒã·ã§ã³ã¬ã€ã€ãŒ DDoS æ»æã®æšçã«ãªãå¯èœæ§ããããŸããDDoS Protection ã¯ããšããžã§æªæã®ãããã©ãã£ãã¯ãæ€åºããŠè»œæžããã¢ããªã±ãŒã·ã§ã³ã»ã€ã³ãã©ã¹ãã©ã¯ãã£ã«å°éããæ»æãã©ãã£ãã¯ã®éãåæžããã®ã«åœ¹ç«ã¡ãŸãã
ãšããžããªããªãŒãšãã£ãã·ã¥
GraphQLã®ã¬ã¹ãã³ã¹ãå®å šã«ãã£ãã·ã¥å¯èœãªå ŽåãFastlyã®é ä¿¡æ©èœã«ãããGraphQLã€ã³ãã©ã¹ãã©ã¯ãã£ãžã®ç¹°ãè¿ãã®ãªã¯ãšã¹ããåæžã§ããŸããGraphQLã®ãã£ãã·ã¥ã«ã¯æ éãªèšèšãå¿ èŠã§ããããã¯ãã¬ã¹ãã³ã¹ãã¯ãšãªã倿°ãèªèšŒãããã³ãŠãŒã¶ãŒåºæã®ããŒã¿ã«äŸåããå¯èœæ§ãããããã§ããçµç¹ã¯ããã£ãã·ã¥ããŒãšããªã·ãŒããããã®éããæ£ç¢ºã«è¡šããŠããå Žåã«ã®ã¿ãã¬ã¹ãã³ã¹ããã£ãã·ã¥ããå¿ èŠããããŸãã
é©åã«å®è£ ãããšããšããžã»ãã£ãã·ã¥ã«ãã£ãŠããã¯ãšã³ããžã®ãªã¯ãšã¹ããåæžããAPI ããã©ãŒãã³ã¹ãåäžãããããšãã§ããŸãã
ãªã¢ã«ã¿ã€ã ã®å¯èŠæ§
Fastly ã¯ãããŒã ãäžå¯©ãª API ã¢ã¯ãã£ããã£ã調æ»ããã®ã«åœ¹ç«ã€ãªã¢ã«ã¿ã€ã ãã®ã³ã° ãšã»ãã¥ãªãã£å¯èŠæ§ãæäŸããŸããGraphQL ãããã€ã§ã¯ãããã«ãããGraphQL ãµãŒãã¹ã«å°éããåã®ãã©ãã£ãã¯ãã»ãã¥ãªãã£ããŒã ãšãªãã¬ãŒã·ã§ã³ããŒã ãå¯èŠæ§ã§ãããããã¢ããªã±ãŒã·ã§ã³ã¬ãã«ã®ãªãã¶ãŒãããªãã£ãè£å®ã§ããŸãã
Fastly 㯠GraphQL ã»ãã¥ãªãã£æŠç¥ã«ã©ã®ããã«é©åããŸããïŒ
Fastlyã¯ãé©åã«ä¿è·ãããGraphQLã¢ããªã±ãŒã·ã§ã³ã®åšå²ã«è¿œå ãããã»ãã¥ãªãã£ã¬ã€ã€ãŒãšèããã®ãæé©ã§ãããGraphQLå®è£ å ã®ã»ãã¥ãªãã£ã«ä»£ãããã®ã§ã¯ãããŸããã
ã¢ããªã±ãŒã·ã§ã³ã¯ã次ã®ãã®ãå«ãã³ã³ãããŒã«ã«ã€ããŠåŒãç¶ã責任ãè² ãå¿ èŠããããŸãïŒ
èªèšŒ
ãªããžã§ã¯ãã»ã¬ãã«ããã³ãã£ãŒã«ãã»ã¬ãã«ã®èªå¯
ã¯ãšãªã®æ·±ãã®å¶é
ã¯ãšãªã®è€éããŸãã¯ã³ã¹ãåæ
å®å šãªãªãŸã«ããŒã®å®è£
å ¥åæ€èšŒ
å®å šãªãšã©ãŒåŠç
é©åãªã€ã³ããã¹ãã¯ã·ã§ã³ããªã·ãŒ
Fastlyã¯ãNext-Gen WAFãAPI protectionãBot Managementãã¬ãŒãå¶éãDDoS ProtectionããšããžããªããªãŒããªã¢ã«ã¿ã€ã ã®å¯èŠæ§ã«ãã£ãŠããããã®ã³ã³ãããŒã«ãè£å®ã§ããŸãã
ãããã®ã¬ã€ã€ãŒãçµã¿åãããããšã§ãçµç¹ã¯æªæã®ãããªã¯ãšã¹ããGraphQLã€ã³ãã©ã¹ãã©ã¯ãã£ã«å°éããåã«ãããã¯ããèªååãããäžæ£äœ¿çšãã³ã³ãããŒã«ãããã©ãã£ãã¯æ¥å¢ã®åœ±é¿ã軜æžããAPIãã¢ããªã±ãŒã·ã§ã³æ»æããä¿è·ããäžèŠãªããã¯ãšã³ããªãœãŒã¹æ¶è²»ãæããããšãã§ããŸãã
GraphQL APIã»ãã¥ãªãã£ã®äžå¿ååã¯ãã¯ã©ã€ã¢ã³ãã«ã¢ããªã±ãŒã·ã§ã³ãªãœãŒã¹ãããŒã¿ã«å¯Ÿããç¡å¶éã®ã³ã³ãããŒã«ãäžããããšãªããGraphQLã®æè»æ§ãç¶æããããšã§ããå®å šãªGraphQLèšèšããšããžããŒã¹ã®ã¢ããªã±ãŒã·ã§ã³ããã³APIä¿è·ãšçµã¿åãããããšã§ãçµç¹ã¯ãã®ãã©ã³ã¹ãå®çŸãããããªããŸãã





