GraphQL勉強会 2017.6.7

GraphQL勉強会 2017.6.7

2017.6.7に開催した社内勉強会で使用した発表資料です。

10a5592707295ff192c41cbd35f36627?s=128

Nobutaka OSHIRO

June 07, 2017
Tweet

Transcript

  1. GraphQLษڧձ by Nobutaka OSHIRO 6/7 WED 19:00-21:00

  2. ໨࣍ • GraphQLͱ͸ • GraphQLͷϝϦοτɾσϝϦοτ • GraphQLΛͨΊ͢ʹ͸ • GraphQL Server

    / Clientͷ࣮૷ํ๏ • GraphQLཧղͷϙΠϯτ • ·ͱΊ
  3. GraphQLͱ͸

  4. http://graphql.org/

  5. GraphQLͱ͸ GraphQL͸ΫϥΠΞϯτ͔Βαʔόʔ΁ͷ໰͍ ߹Θͤʹ࢖༻͢ΔΫΤϦʔݴޠ(࢓༷)

  6. GraphQLͱ͸ • ϓϩάϥϛϯάݴޠͰ͸ͳ͘ɺΫΤϦʔݴޠ • 2012೥ʹFacebookʹΑͬͯ࡞੒͞Εɺ2015೥·ͰFacebookࣾ ಺Ͱ࢖༻͞Ε͍ͯͨ΋ͷΛɺ2015೥ʹFacebook͕Ұൠެ։ͨ͠ • ݱࡏ࢓༷ͷඪ४ԽΛ໨ࢦ͓ͯ͠ΓɺDraft RFC͕ެ։͞Ε͍ͯΔ •

    https://facebook.github.io/graphql/ • GraphQL͕ఏڙ͢Δ΋ͷ • ౷ҰΠϯλʔϑΣʔεɺλΠϓγεςϜɺAPI࢓༷औಘػೳ
  7. GraphQLͷϝϦοτɾσϝϦοτ

  8. GraphQLͷϝϦοτ • ΫϥΠΞϯτΞϓϦέʔγϣϯ͕ඞཁͱ͢ΔσʔλΛ1ճͷϦΫΤ ετͰऔಘͰ͖ΔΑ͏ʹͳΔ • APIͷΤϯυϙΠϯτ1͚ͭͩɺ1ͭͷΤϯυϙΠϯτͰ༷ʑͳϦΫ ΤετʹରԠͰ͖Δ • ΫϥΠΞϯτΞϓϦέʔγϣϯ͔ΒαʔόʔʹϦΫΤετΛ౤͛Δ ࡍʹɺ౷Ұ͞ΕͨΠϯλʔϑΣʔε͕ఏڙ͞Ε͍ͯΔͷͰɺΫϥΠ

    Ξϯτ/αʔόʔͦΕͧΕͷ࣮૷ʹӨڹΛड͚ͣʹ։ൃΛਐΊΔ͜ͱ ͕Ͱ͖Δ • GraphQLͷ։ൃΛαϙʔτ͢ΔπʔϧͷԸܙΛड͚ΒΕΔ
  9. GraphQLͷσϝϦοτ • αʔόʔαΠυͷ࣮૷͕େม • RFCʹैͬͯҰ͔ΒGraphQLϨΠϠʔͷαʔόʔϓϩάϥϜΛࣗ࡞͢Δͷ͸༰қͰ͸ͳ͍ • ϓϩδΣΫτͰ࢖༻͢Δ৔߹͸ɺ͢Ͱʹز͔ͭαʔυύʔςΟ੡ͷ࣮૷͕͋ΔͷͰɺͦΕ Λ࢖༻͢Δͷ͕Α͍ • 1ճͷϦΫΤετͰͷίʔυྔ͸૿Ճ͢Δ

    • ΫϥΠΞϯτଆͰɺԿͷσʔλ͕ඞཁͳͷΛʮ͢΂ͯʯ໌ࣔ͢Δඞཁ͕͋Δ • จݙ͕গͳ͍ • ӳޠͷυΩϡϝϯτ͕΄΅ • ύϑΥʔϚϯε࠷దԽͷϕετϓϥΫςΟε͕ͳ͍ • ϦΫΤετͷܗ͕ຖճมΘΔՄೳੑ͕͋ΔͷͰΩϟογϡ͕(REST APIʹൺ΂ͯ)೉͍͠
  10. GraphQLΛͨΊ͢ʹ͸

  11. GraphQLΛͨΊ͢ʹ͸ • GitHub GraphQL API • https://developer.github.com/v4/ • SWAPI GraphQL

    • http://graphql.org/swapi-graphql/ • Idobata GraphQL API • https://idobata.io/ja/api
  12. GraphQL Server / Client

  13. GraphQL Server / Client http://graphql.org/code/

  14. GraphQLཧղͷϙΠϯτ

  15. GraphQLཧղͷϙΠϯτ • ͢΂ͯͷϦΫΤετ͸POSTʹͳΔ • ʮΫΤϦʔ(Query)ʯͱʮϛϡʔςʔγϣϯ(Mutation)ʯͷ2छྨ͕͋Δ • CQRS( Command Query Responsibility

    Segregation ίϚϯυΫΤϦ ʔ੹຿෼཭) • ΫΤϦʔ͸෭࡞༻Λى͜͞ͳ͍΋ͷ • ϛϡʔςʔγϣϯ͸෭࡞༻Λى͜͢΋ͷ • GraphQLͷϨεϙϯεεϐʔυ͸ΫΤϦʔͷதͰղܾ͕Ұ൪஗͍΋ͷʹ ҾͬுΒΕΔ
  16. ·ͱΊ

  17. ·ͱΊ • GraphQL͸ΫϥΠΞϯτ͔Βαʔόʔ΁ͷ໰ ͍߹Θͤʹ࢖༻͢ΔΫΤϦʔݴޠ(࢓༷) • ΫϥΠΞϯτΞϓϦέʔγϣϯ͕ඞཁͱ͢Δσʔ λΛ1ճͷϦΫΤετͰऔಘͰ͖ΔΑ͏ʹͳΔ • ΫϥΠΞϯτଆͷ࣮૷͸γϯϓϧʹͳΔ͕ɺαʔ όʔαΠυ͸࣮૷͕গ͠େม

  18. ࢀߟจݙ • GraphQLެࣜαΠτ - http://graphql.org/ • GraphQL RFC (Working Draft)

    - http:// facebook.github.io/graphql/ • Apollo - https://www.apollodata.com/ • GraphQL San Francisco (San Francisco, CA) | Meetup - https://www.meetup.com/ja-JP/GraphQL-SF/ • GitHub GraphQL API - https://developer.github.com/v4/
  19. Thank you!