Slide 1

Slide 1 text

GraphQL×TypeScriptͰ ΤϞ͔ͬͨ5ͭͷ͜ͱ 2019/02/02 Gunma.web #34 ؔޱ ࢘

Slide 2

Slide 2 text

໊લ: ؔޱ࢘ SNS: GitHub: TsukasaGR Twitter: TsukasaGr NewsPicks: ؔޱ࢘ ࠲ӈͷ໏ ࣗ෼ͷͨΊʹɺଞਓʹਚ͘͢ ࢓ࣄ: αϥϦʔϚϯ: SIerͰ৽نࣄۀ(toC޲͚ͷWebαʔϏε)։ൃ ϑϦʔϥϯε: ελʔτΞοϓͷWebΤϯδχΞ ࠷ۙ৮ͬͯΔ΋ͷ: PHP(Laravel)ɺJavascript/Typescript(Vue.js/Nuxt.js)ɺGraphQLɺDockerɺAWSɺFirebase ࣗݾ঺հ

Slide 3

Slide 3 text

ࠓ೔࿩͢͜ͱ • GraphQLͱ͸ • GraphQLͷPros/Cons • TypeScriptͱ͸ • GraphQLΛ৮ͬͯΤϞ͔ͬͨ͜ͱ • GraphQL×TypeScriptΛ૊Έ߹Θͤͯ ΤϞ͔ͬͨ͜ͱ

Slide 4

Slide 4 text

GraphQL(backend) Laravel: 5.7.24 nuwave/lighthouse: 2.6.4 mll-lab/laravel-graphql-playground: 0.3.3 GraphQL(frontend), TypeScript Nuxt.js: 2.3.4 typescript: 3.2.2 @nuxtjs/apollo: 4.0.0-rc2.3 etc… લఏ

Slide 5

Slide 5 text

ΤϞ͔ͬͨ5ͭͷ͜ͱ

Slide 6

Slide 6 text

1. ΫϥΠΞϯτ࣮ߦ؀ڥ͕ ΤϞ͍

Slide 7

Slide 7 text

mll-lab/laravel-graphql-playground (prisma/graphql-playground)

Slide 8

Slide 8 text

prisma/vscode-graphql

Slide 9

Slide 9 text

2. GraphQLͷΫΤϦ͕ ΤϞ͍

Slide 10

Slide 10 text

ෳ਺ͷΫΤϦΛ·ͱΊͯൃߦ

Slide 11

Slide 11 text

3. Document as Code͕ ΤϞ͍

Slide 12

Slide 12 text

nuwave/lighthouse

Slide 13

Slide 13 text

4. Code Generator͕ ΤϞ͍

Slide 14

Slide 14 text

dotansimha/graphql-code-generator

Slide 15

Slide 15 text

5. ·ͩओྲྀʹͳͬͯͳ͍ͷ͕ ΤϞ͍

Slide 16

Slide 16 text

• TypeScript͸AltJSͷσϑΝΫτʹͳΓͭͭ͋Δ͕ɺAPI͸ ·ͩ·ͩRestAPI͕ओྲྀ • ΋ͪΖΜGraphQL͸RestAPIͷ୅ସͱͯ͠Ͱͳ͘࢖͍෼͚ Δ΋ͷͩͱࢥ͏͕ɺSSKDsͳAPIͰ͋Ε͹ΤϯυϙΠϯτ ͕ҰՕॴʹ·ͱ·͍ͬͯΔͱϑϩϯτΤϯυ͕εοΩϦ͢ Δ • ͢ͰʹΤϞ͍GraphQL͕ͩɺࠓޙ͞ΒʹΤϞ͘ͳ͍ͬͯ͘ Մೳੑ͕͋Δʂ ͞ΒʹΤϞ͘ͳΔ͔΋ʁʂ

Slide 17

Slide 17 text

͓·͚. ΤϞ͘ͳ͍ͱ͜Ζ

Slide 18

Slide 18 text

• GraphQLͷΤϞ͘ͳ͍ͱ͜Ζ • TypeScriptͷΤϞ͘ͳ͍ͱ͜Ζ • Laravel×GraphQLͷΤϞ͘ͳ͍ͱ͜Ζ • Nuxt×TypeScriptͷΤϞ͘ͳ͍ͱ͜Ζ

Slide 19

Slide 19 text

LaravelͷGraphQL ϥΠϒϥϦ͕ൃల్্ LaravelͰGraphQLΛ࢖͍౗ͯ͠Έͨ https://qiita.com/TsukasaGR/items/1a8b0020e5e83e7a46c7

Slide 20

Slide 20 text

NuxtͷTSαϙʔτ͕·ͩऑ͍ ͕ɺઌ೔ϦϦʔε͞Εͨv2.4ͰTSαϙʔτͨ͠ͱͷ͜ͱ https://dev.to/nuxt/nuxtjs-v240-is-out-typescript-smart- prefetching-and-more-18d

Slide 21

Slide 21 text

͍͞͝ʹ

Slide 22

Slide 22 text

• ࣮ࡍʹΞϓϦέʔγϣϯΛ࣮૷ͯ͠ΈΔͱҧͬͨݟ͑ํ͸͋Γͦ͏ • ٧·ͬͨ࣌ʹάάͬͯ΋ղܾࡦ͕օແ • ΫΤϦͷ8ׂ͕Resolver • CustomDirectiveɺCustomScalarͱϑϨʔϜϫʔΫͷओػೳ (DIɺORM౳)ͷ࿈ܞ͕ग़དྷͳ͍ • PrismaɺApollo͕ଟػೳɺϥΠϒϥϦ͕ଟ͗ͯ͢Α͘Θ͔Βͳ͍ • ΍ͬͺΓRestAPIҰຊʹ໭ͦ͏ • etc… ͦΕͰ΋஍ཕΛ౿Ήʹ஋͢ΔΤϞ͕͋͞Δʂ