You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert
Railsã®ã¢ãã«ãããã³ãã®JavaScriptã§æã£ã¦ãããã¼ã¿ã¨ãªã¢ã«ã¿ã¤ã åæãããããã®gem(ar_sync)ãä½ã£ã¦ããã ãã®ããã«ã俺ã®èããæå¼·ã®ã·ãªã¢ã©ã¤ã¶(ar_serializer)ãä½ã£ã¦ããããã»ã¼GraphQLäºæ(mutationã¯ãªããã©)ã½ãä½ãã«ãªã£ãã ãã£ãããªã®ã§GraphQLã®ãã¼ãµãæ¸ãã¦ãGraphiQLãåãã¨ããã¾ã§ã§ããã GraphQLã¯è¯ãã ar_serializerã«ã¤ã㦠https://github.com/tompng/ar_serializer queryã¯ãas_jsonã¨ãincludesã®å¼æ°ã¿ãããª(è¦æ £ãããã®ã«è¿ã)è¨æ³ã§æ¸ã GraphQLã®queryã¨æ©è½çã«ã¯ã ãããåã ã¢ãã«ã«ã¬ãªã¬ãªfieldæ¸ãã¦ã å人çã«ã¯æ¸ããããã¨æã(typeãæå®ããªããã°é©å½ã«associationã¨ãããå¼ã£
Integration Test / Request Spec ã§ã¯ããã¾ã§ãactionã®ã«ãã¬ãã¸ãæºããããã«å®è¡ãã¦ãã¾ã ã¤ã¾ãçé確èªã¨actionã«ãããä¾å¤å¦çã®ã¿ spec/graphql/ ã«ãKibelaSchema.execute() ãè¡ãspecã追å ãã¦å¿ è¦ãªåä½ï¼queryã®fieldãtypeï¼ãã¨ã«ãã¹ããã¦ãã¾ã test patternã®ã«ãã¬ãã¸ã¯argumentsã®éãã®ã¿ã§ããã¨ãã°ãã£ã¼ã«ãã¯å ¨é¨æå®ãããã¿ã¼ã³ã1ã¤ã ãè¡ã£ã¦ã¾ã .execute() ã®æ»ãå¤ã¯ #to_json() ã㦠rspec-json_matcher ã§expectationãæ¸ãã¦ãã¾ã resolverãç´æ¥å¼ã¶ãã¹ãã¯ãã¦ãã¾ãã tips: RubyMineã®å ´åã queryãæ¸ãã¨ãã®heredoc tokenã GRAQPHQL ã«ããã¨ãquer
ãã®ããã GitHub ãå ¬éãã¦ãã GraphQL API ã便å©ããã ã£ãã®ã§ä½¿ããã¨æã£ãã®ã ãã©ãæ±ããã©ã¤ãã©ãªããªãã£ãã®ã§ä½ã£ã次第ã§ãã ããã§ GraphQL ã«ã¤ãã¦ã®èª¬æã¯ãã¾ããããçµæã® JSON ã¨ã¯ã¨ãªãåãå½¢ãæã£ã¦ããã®ã便å©ã§ç¾ããã§ãããã¨ãããã¨ã¯ API ã®çµæã® JSON ãåãåã struct ãã GraphQL ã®ã¯ã¨ãªãçæã§ããã®ãèªç¶ã§ãããããããããã¨ããã£ã¦ãããã·ã³ãã«ãªã©ã¤ãã©ãªã§ãã GitHub - motemen/go-graphql-query API ã·ã³ãã«ãªä¾ ãã£ã¬ã¯ãã£ãã¨ã¨ã¤ãªã¢ã¹ 弿°ã¨å¤æ° ã¤ã³ã©ã¤ã³ãã©ã°ã¡ã³ã è¤éãªä¾ è»½ãæ°æã¡ã§æ¸ãã¯ãããã¨ãã GraphQL ã«äºæ³å¤ã®è¡¨ç¾åããããã¨ãããã£ãã®ã§ãã£ããç¡çããã¦ããã¨ãããããã¾ããä¸è¬çã«ã©ããªä½¿ãæ¹ããªãããã®ãããã£ã¦ãªã
GraphQLã¯æè¿æ³¨ç®ããã¦ããWeb APIã®ããã®åãåããè¨èªã ã ç¾å¨ä¸»æµã®RESTfulãªAPIã¯URLã¨methodã§ãªã½ã¼ã¹ã表ç¾ããããã ããGraphQLã¯åä¸ã¨ã³ããã¤ã³ãï¼ex: "POST /graphql"ï¼ã ãåå¨ããæ¬²ãããªã½ã¼ã¹ãHTTP POSTã®bodyã«æç¤ºçã«è¨è¼ãã¦ãªã¯ã¨ã¹ãããã âJSON APIãGraphQLã®å½¢å¼ã§ã³ã¼ã«ããï¼å¼ç¨: how to graphql ) å¾ã ã«å®è£ ä¾ãå¢ãã¦ãã¦ããã2016å¹´ã«ã¯GithubãAPIã®å®è£ ãå ¨é¢çã«GraphQLã«ç§»è¡ãããã®ã注ç®ãããã è²ã 調ã¹ã¦ããã¨ãGraphQLã¯åã«RESTã®ä»£æ¿ã§ã¯ãªããéçºã»éç¨ããã¼ã䏿°ããããã»ã©è±ããªææ³ã»æ©è½ãå«ãäºãåãã£ã¦æ¥ãã®ã§ç¾ç¶ã®æ´çããã¦ã¿ããã APIãªã¯ã¨ã¹ããæãã¦å¹çåRESTã§ã¯URLãã²ã¨ã¤ã®ãªã½ã¼ã¹ã表ããããè¤æ°ã®ãªã½
RESTã®è¦ç´ãURLã¯ãªã½ã¼ã¹ã§ãããCRUDã¯HTTPåè©ã«ããããããã RESTã®è¦ç´ã«1ã¤åé¡ãããã¨ããã°ãè¦ç´ãååã§ãªãã¨ãããã¨ã§ããããä¸è¨ã§âé常âãâå¤ãã®å ´åâãâæã«âã¨ãã表ç¾ã使ã£ãã®ã¯ããããã®ããæ¹ã¯ä»æ§ã§æ¨å¥¨ããã¦ãããã®ã®å®ãããã¨ã¯éããªãããã§ããå®ä¸çã§ã¯ã大æµã®APIã¯RESTishãããããã§ããä¾ãã°Stripeã§ã¯ããªã½ã¼ã¹æ´æ°ã« PUT ã§ã¯ãªã PATCH ã使ãã¹ãã§ãããæ´å²ççç±ã§ããã¯ãªã£ã¦ããããããããç¾æç¹ã§ã¯å¤æ´ã«å¤ããªãã§ãããããããã«ãã¦ãéçºè ã¯ããã¥ã¡ã³ããèªãå¿ è¦ãããããã®æã POST ã¡ã½ããã®ã¦ããã¿ã¹ãªä½¿ãæ¹ããããã¨ã«æ°ã¥ãã®ã§ãã RESTã«ã¯ä»ã®åé¡ãããã¾ããå¿ è¦ãªãã®ã ãã§ãªãå ¨ã¦ãè¿ã£ã¦ããããããªã½ã¼ã¹ã®ãã¤ãã¼ããé常ã«å¤§ãããªããã¨ãããã®ã§ããããã¦å¤ãã®å ´åãã¯ã©ã¤ã¢ã³ãã
æåã«: ãFunctional Programming æé«ï¼ãã¨ãã話ã§ã¯ãªãã§ã JSã¯éä¿¡ãã¹ãã¬ã¼ã¸ã«ä¿åãããã¼ã¿ã®æ±ãã®é¢ä¿ã§ãJSONã«ã·ãªã¢ã©ã¤ãºã§ãããã¨ãè³ä¸å½é¡ã«ãªãã±ã¼ã¹ãå¤ãã®ã§ãã¯ã©ã¹ãã¼ã¹ã®è¨è¨ã§èªèº«ã«å¯ä½ç¨ãèµ·ããã¡ã½ãããããã¤ãã¥ã¼ã¿ãã«ãª T => T ãªstatic methodã¨ãã¦åãé¢ãã¦ããã¨æ±ããããã±ã¼ã¹ãå¤ãâ ç¾å ´ã®å£° (@mizchi) 2016å¹´9æ6æ¥ è¤éãªãªãã¸ã§ã¯ãã®ã·ãªã¢ã©ã¤ãºã¯ç°¡åã ãã©ãéã«ã·ãªã¢ã©ã¤ãºããããªãã¸ã§ã¯ããããã«ããæ§ç¯ããã®ãé£ããã®ã§ãJSONã®æ§é ä½èªèº«ã¨ã¯å¥ã«ç¬ç«ãã¦ç¬ç«ããã¡ã½ããã¨ãã¦ãã«ããåãé¢ããã¦ããæ¹ãæ±ããããâ ç¾å ´ã®å£° (@mizchi) 2016å¹´9æ6æ¥ ä¸å¿ã³ã³ã¹ãã©ã¯ã¿åãä¿åãã¦ã·ãªã¢ã©ã¤ãº/復å ããæ¹æ³ã¯ãã£ã¦ãRPGãã¯ã¼ã«MVã®ã³ã¼ããèªãã¨ããããæãã«
ããã«ã¡ã¯ãç§èåã©ãã®é´æ¨(@brfrn169)ã§ãã æ®æ®µã¯ããã°è§£æåºç¤ã®ã¤ã³ãã©é¨åã忣DB(主ã«HBase)å¨ãããã£ã¦ãã¾ãã
ã¡ã³ããã³ã¹
ã©ã³ãã³ã°
ãç¥ãã
ãªãªã¼ã¹ãé害æ å ±ãªã©ã®ãµã¼ãã¹ã®ãç¥ãã
ææ°ã®äººæ°ã¨ã³ããªã¼ã®é ä¿¡
å¦çãå®è¡ä¸ã§ã
j次ã®ããã¯ãã¼ã¯
kåã®ããã¯ãã¼ã¯
lãã¨ã§èªã
eã³ã¡ã³ãä¸è¦§ãéã
oãã¼ã¸ãéã
{{#tags}}- {{label}}
{{/tags}}