Slide 1

Slide 1 text

(SBQI2-։ൃͰඞཁ ʹͳͬͨ͜ͱ .UFDINFFUVQ!NBHF

Slide 2

Slide 2 text

No content

Slide 3

Slide 3 text

No content

Slide 4

Slide 4 text

5BLBZVLJ.BUTVCBSB ϚϧνσόΠενʔϜ ௨শϚϧσό νʔϜϦʔμʔ UXJUUFS!NBHF 3VCZ &MJYJSBOE044 044΋͘΋͘ձओ࠵

Slide 5

Slide 5 text

1PXFS"TTFSU&Y⭐ HJUIVCDPNNBHFEFWQPXFS@BTTFSU@FY

Slide 6

Slide 6 text

No content

Slide 7

Slide 7 text

(SBQI2-։ൃͰඞཁ ʹͳͬͨ͜ͱ

Slide 8

Slide 8 text

ࠓ೔࿩͞ͳ͍͜ͱ w (SBQI2-ʹ͍ͭͯͬ͘͟Γ஌͍ͬͯΔલఏ w ΋͠෼͔Βͳ͍ͱ͍͏ਓ͕͍ͨΒԼهNPHBNJOH͞Μ ͷࢿྉ΍ɺ৿͞Μͷॻ͍ͨهࣄΛݟΔͱͲΜͳ΋ͷ͔ ෼͔Γ΍͍͢Ͱ͢ ࢀߟϦϯΫ J04º(SBQI2-ͷخ͠Έͱπϥϛ1SPTBOEDPOTPGJ04BOE(SBQI2- IUUQTTQFBLFSEFDLDPNNPHBNJOHQSPTBOEDPOTPGJPTBOE HSBQIRM (SBQI2-ೖ໳3FBDUKT&YQSFTTKT"QPMMPͷ؆୯νϡʔτϦΞϧ IUUQTXXXNUFDICMPHFOUSZHSBQIRMBQPMMPSFBDUFYQSFTTOPEFKT

Slide 9

Slide 9 text

ϚϧσόνʔϜͱ͸ w J04 "OESPJEΞϓϦ։ൃ෦ୂ w "1*αʔό΋ݟ͍ͯΔ w 1VTI഑৴ج൫΋ݟ͍ͯΔ

Slide 10

Slide 10 text

ϚϧσόνʔϜͱ͸ w J04 "OESPJEΞϓϦ։ൃ෦ୂ w "1*αʔό΋ݟ͍ͯΔ(SBQI2-ͰϦϓϨΠε͍ͨ͠ w 1VTI഑৴ج൫΋ݟ͍ͯΔ ࢀߟ ϑϩϯτΤϯυ޲͚ͷ"1*αʔόϦχϡʔΞϧʹ(SBQI2-Λݕ౼͍ͯ͠Δ࿩ IUUQTXXXNUFDICMPHFOUSZHSBQIRMPOTQSJOHCPPUXJUILPUMJO αʔόαΠυ ,PUMJO

Slide 11

Slide 11 text

,POUSJCVUPS

Slide 12

Slide 12 text

γεςϜߏ੒ ݱࡏ "1* αʔό (SBQI2- αʔό "1* αʔό܈ "1* αʔό܈ "1* αʔό܈ "1* αʔό܈

Slide 13

Slide 13 text

γεςϜߏ੒ কདྷ "1* αʔό (SBQI2- αʔό "1* αʔό܈ "1* αʔό܈ "1* αʔό܈ "1* αʔό܈

Slide 14

Slide 14 text

։ൃ࢝͠Ίͯগͨͬͨ͠ͱ͋Δ೔

Slide 15

Slide 15 text

r4MBDLΑΓ l"OESPJE൛͸ຊ೔னʹୟ͖୆׬੒༧ఆͰ͢z

Slide 16

Slide 16 text

(SBQI2-αʔόͰ͖ͯͳ͍ ͜ͷઌͷ։ൃͲ͏͢Δͷ

Slide 17

Slide 17 text

͜ͷ··͍͘ͱɻɻɻ w ޾͍"1*ͳͯ͘΋ϑϩϯτ͸͋Δఔ౓։ൃͰ͖Δͱͷ͜ ͱ w ͔͠͠ཪଆͷ࣮૷΋ͭͭ͠ɺ(SBQI2-"1*Λఏڙͯ͠ߦ ͘ͱͳΔͱ͍ͣΕ௥͍͔ͭΕͯ࣌ؒ଍Γͳ͘ͳΓͦ͏ʜ

Slide 18

Slide 18 text

(SBQI2- εΩʔϚϑΝʔετ։ൃ ࢀߟϦϯΫ (SBQI2-BOE4DIFNB'JSTU%FWFMPQNFOU IUUQTTQFBLFSEFDLDPNLZNNUHSBQIRMBOETDIFNBpSTU EFWFMPQNFOU

Slide 19

Slide 19 text

εΩʔϚϑΝʔετ։ൃ w ΠϯλʔϑΣʔε *' ΛઌʹܾΊΔ ੺࿮ͷ෦෼ w ϑϩϯτΤϯυɺόοΫΤϯυڞʹ*'Λ΋ͱʹ։ൃ͢Δ (SBQI2- αʔό

Slide 20

Slide 20 text

ϞοΫαʔό w ϑϩϯτΤϯυ͕։ൃ͢ΔͨΊʹ΋ϞοΫαʔό͕ඞཁ w "QPMMPͷ(SBQI2-UPPMTΛ࢖͏ ࢀߟϦϯΫ (SBQI2-UPPMTHFOFSBUFBOENPDL(SBQI2-KTTDIFNBT IUUQTHJUIVCDPNBQPMMPHSBQIRMHSBQIRMUPPMT

Slide 21

Slide 21 text

QBDLBHFKTPO ࢀߟ ҎԼʹ͜ͷޙͷࢿྉͰ࢖͍ͬͯΔαϯϓϧίʔυΛࡌͤͯ͋Γ·͢ IUUQTHJUIVCDPNNEFWHSBQIRMTQSJOHCPPULPUMJOTBNQMFQVMM { "name": "mock", "version": "1.0.0", "description": "graphql mock server", "dependencies": { "apollo-server-express": "^1.4.0", "body-parser": "^1.18.3", "express": "^4.16.3", "graphql": "^0.13.2", "graphql-tools": "^4.0.0" }, "scripts": { "start": "node ./index.js" }, "devDependencies": {}, "author": "Takayuki Matsubara", "license": "MIT" }

Slide 22

Slide 22 text

JOEFYKT શମ const express = require('express'); const bodyParser = require('body-parser'); const { graphqlExpress, graphiqlExpress } = require('apollo-server- express'); const { addMockFunctionsToSchema, makeExecutableSchema } = require('graphql-tools'); const typeDefs = require('./type_defs'); const schema = makeExecutableSchema({ typeDefs }); const mocks = require('./mocks') addMockFunctionsToSchema({ schema, mocks }); const app = express(); app.use('/graphql', bodyParser.json(), graphqlExpress({ schema })); app.use("/graphiql", graphiqlExpress({ endpointURL: "/graphql" })); app.listen(3000, () => { console.log('/graphiql is running'); });

Slide 23

Slide 23 text

JOEFYKT ൈਮ const typeDefs = require('./type_defs'); const schema = makeExecutableSchema({ typeDefs }); const mocks = require('./mocks') addMockFunctionsToSchema({ schema, mocks }); εΩʔϚΛఆٛ͢Δ

Slide 24

Slide 24 text

UZQF@EFGTKT ൈਮ module.exports = ` … # ஶऀ type Author { id: ID! # ஶऀ໊ name: String! # ஶऀͷຊ books: [Book]! } # ຊ type Book { id: ID! # ໊લ name: String! } … `;

Slide 25

Slide 25 text

࣮͸͜͜·ͰͰಈ͘ OQNSVOTUBSU

Slide 26

Slide 26 text

MPDBMIPTUHSBQIJRM

Slide 27

Slide 27 text

ABEE.PDL'VODUJPOT5P4DIFNBAͰ BQPMMP͕͍͍ײ͡ʹฦͯ͘͠ΕΔ

Slide 28

Slide 28 text

εΩʔϚ͕͋Ε͹ w ͦΕͬΆ͍ϞοΫ͸࡞ΕΔ w ͋ͱ͸εΩʔϚʹ͍ͭͯ࿩͠߹ܾͬͯΊΔͳΓ͢Ε͹Α͍ w ܾΊͨΒͦΕΛͦͷ··ϞοΫαʔόଆʹઃఆ͢Δ

Slide 29

Slide 29 text

΋ͬͱͩ͜ΘΓ͍ͨ w ͦΜͳํ͸NPDLͰ৭ʑఆٛͰ͖Δ

Slide 30

Slide 30 text

JOEFYKT ൈਮ const typeDefs = require('./type_defs'); const schema = makeExecutableSchema({ typeDefs }); const mocks = require('./mocks') addMockFunctionsToSchema({ schema, mocks }); ϞοΫΛఆٛ͢Δ

Slide 31

Slide 31 text

NPDLTKT module.exports = { Author: () => ({ name: 'Takayuki Matsubara', }), Book: () => ({ name: 'Elixir Book', }), }; ࢀߟ ެࣜʹ΋ͬͱΧελϜͰ͖Δྫ͕͋Δ IUUQTXXXBQPMMPHSBQIRMDPNEPDTHSBQIRMUPPMTNPDLJOHIUNM

Slide 32

Slide 32 text

MPDBMIPTUHSBQIJRM

Slide 33

Slide 33 text

ϞοΫαʔόͰ͖ͨ w ͜ΕΛ΋ͱʹࠓޙεΩʔϚఆ͔ٛΒ࿩͠߹ͬͯਐΊ͍ͯ͘ w ࠓޙ։ൃͰ௥͍͔ͭΕͯ΋େৎ෉

Slide 34

Slide 34 text

(SBQI2-։ൃͰඞཁʹͳͬͨ͜ͱ w εΩʔϚϑΝʔετͳ։ൃ w ฒߦͯ͠։ൃͰ͖ͦ͏ w ͜Ε͔Β͞Βʹ։ൃ͍ͯ͘͠

Slide 35

Slide 35 text

(SBQI2-։ൃͰඞཁ ʹͳͬͨ͜ͱ .UFDINFFUVQ!NBHF