Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

໨࣍ • GraphQLͱ͸ • GraphQLͷϝϦοτɾσϝϦοτ • GraphQLΛͨΊ͢ʹ͸ • GraphQL Server / Clientͷ࣮૷ํ๏ • GraphQLཧղͷϙΠϯτ • ·ͱΊ

Slide 3

Slide 3 text

GraphQLͱ͸

Slide 4

Slide 4 text

http://graphql.org/

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

GraphQLͱ͸ • ϓϩάϥϛϯάݴޠͰ͸ͳ͘ɺΫΤϦʔݴޠ • 2012೥ʹFacebookʹΑͬͯ࡞੒͞Εɺ2015೥·ͰFacebookࣾ ಺Ͱ࢖༻͞Ε͍ͯͨ΋ͷΛɺ2015೥ʹFacebook͕Ұൠެ։ͨ͠ • ݱࡏ࢓༷ͷඪ४ԽΛ໨ࢦ͓ͯ͠ΓɺDraft RFC͕ެ։͞Ε͍ͯΔ • https://facebook.github.io/graphql/ • GraphQL͕ఏڙ͢Δ΋ͷ • ౷ҰΠϯλʔϑΣʔεɺλΠϓγεςϜɺAPI࢓༷औಘػೳ

Slide 7

Slide 7 text

GraphQLͷϝϦοτɾσϝϦοτ

Slide 8

Slide 8 text

GraphQLͷϝϦοτ • ΫϥΠΞϯτΞϓϦέʔγϣϯ͕ඞཁͱ͢ΔσʔλΛ1ճͷϦΫΤ ετͰऔಘͰ͖ΔΑ͏ʹͳΔ • APIͷΤϯυϙΠϯτ1͚ͭͩɺ1ͭͷΤϯυϙΠϯτͰ༷ʑͳϦΫ ΤετʹରԠͰ͖Δ • ΫϥΠΞϯτΞϓϦέʔγϣϯ͔ΒαʔόʔʹϦΫΤετΛ౤͛Δ ࡍʹɺ౷Ұ͞ΕͨΠϯλʔϑΣʔε͕ఏڙ͞Ε͍ͯΔͷͰɺΫϥΠ Ξϯτ/αʔόʔͦΕͧΕͷ࣮૷ʹӨڹΛड͚ͣʹ։ൃΛਐΊΔ͜ͱ ͕Ͱ͖Δ • GraphQLͷ։ൃΛαϙʔτ͢ΔπʔϧͷԸܙΛड͚ΒΕΔ

Slide 9

Slide 9 text

GraphQLͷσϝϦοτ • αʔόʔαΠυͷ࣮૷͕େม • RFCʹैͬͯҰ͔ΒGraphQLϨΠϠʔͷαʔόʔϓϩάϥϜΛࣗ࡞͢Δͷ͸༰қͰ͸ͳ͍ • ϓϩδΣΫτͰ࢖༻͢Δ৔߹͸ɺ͢Ͱʹز͔ͭαʔυύʔςΟ੡ͷ࣮૷͕͋ΔͷͰɺͦΕ Λ࢖༻͢Δͷ͕Α͍ • 1ճͷϦΫΤετͰͷίʔυྔ͸૿Ճ͢Δ • ΫϥΠΞϯτଆͰɺԿͷσʔλ͕ඞཁͳͷΛʮ͢΂ͯʯ໌ࣔ͢Δඞཁ͕͋Δ • จݙ͕গͳ͍ • ӳޠͷυΩϡϝϯτ͕΄΅ • ύϑΥʔϚϯε࠷దԽͷϕετϓϥΫςΟε͕ͳ͍ • ϦΫΤετͷܗ͕ຖճมΘΔՄೳੑ͕͋ΔͷͰΩϟογϡ͕(REST APIʹൺ΂ͯ)೉͍͠

Slide 10

Slide 10 text

GraphQLΛͨΊ͢ʹ͸

Slide 11

Slide 11 text

GraphQLΛͨΊ͢ʹ͸ • GitHub GraphQL API • https://developer.github.com/v4/ • SWAPI GraphQL • http://graphql.org/swapi-graphql/ • Idobata GraphQL API • https://idobata.io/ja/api

Slide 12

Slide 12 text

GraphQL Server / Client

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

GraphQLཧղͷϙΠϯτ

Slide 15

Slide 15 text

GraphQLཧղͷϙΠϯτ • ͢΂ͯͷϦΫΤετ͸POSTʹͳΔ • ʮΫΤϦʔ(Query)ʯͱʮϛϡʔςʔγϣϯ(Mutation)ʯͷ2छྨ͕͋Δ • CQRS( Command Query Responsibility Segregation ίϚϯυΫΤϦ ʔ੹຿෼཭) • ΫΤϦʔ͸෭࡞༻Λى͜͞ͳ͍΋ͷ • ϛϡʔςʔγϣϯ͸෭࡞༻Λى͜͢΋ͷ • GraphQLͷϨεϙϯεεϐʔυ͸ΫΤϦʔͷதͰղܾ͕Ұ൪஗͍΋ͷʹ ҾͬுΒΕΔ

Slide 16

Slide 16 text

·ͱΊ

Slide 17

Slide 17 text

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

Slide 18

Slide 18 text

ࢀߟจݙ • 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/

Slide 19

Slide 19 text

Thank you!