Slide 1

Slide 1 text

REST೴୤ग़ͷͨΊͷ໋໊ͷ࿩ asmsuechan

Slide 2

Slide 2 text

asmsuechan ࣗ ݾ ঺ հ 0 ݸਓϓϩμΫτͱ͔ͰGraphQL࢖ͬͯΔ ϑϩϯτɺαʔόʔɺͪΐͬͱΫϥ΢υ Alibaba Cloud MVP

Slide 3

Slide 3 text

GraphQLͷ໊લ෇͚ ࠓ ೔ ࿩ ͢ ͜ ͱ “GraphQLͬΆ͍”໊લʹ
 ͢ΔͨΊʹࢲ͕ҙ͍ࣝͯ͠Δ͜ͱ 1 query΍mutationͷ໊લͷ࿩

Slide 4

Slide 4 text

(1) queryͷ৔߹ ݁ ࿦ ໊લͷཪʹόοΫΤϯυͷಈ࡞͕ݟ͑Δ 2.1 REST೴ ໊લͷཪʹཉ͍͠σʔλ͕ݟ͑Δ GraphQL ͿͬͪΌ͚queryͷ໋໊͸RESTͱ͋·Γ͕ࠩͳ͍ؾ΋͢Δ σʔλΛऔͬͯ͘Δ΍ͭ

Slide 5

Slide 5 text

(1) GET: /users/:idΛqueryʹ͢Δ ྫ ͑ ͹ getUser(id: $id) { email name } (ਖ਼௚͜Ε͸શવڐͤΔ) ϢʔβʔΛ৘ใΛදࣔ͢ΔͨΊͷΤϯυϙΠϯτ 2.1 user(id: $id) { email name } X O ???ʮԶ͸getUser͍ͨ͠Μ͡Όͳͯ͘userͷ৘ใ͕ཉ͍͠ΜͩΑʯ

Slide 6

Slide 6 text

(2) mutationͷ৔߹ ݁ ࿦ ໊લͷཪʹϦιʔε͕ݟ͑Δ 2.2 REST೴ ໊લͷཪʹৼΔ෣͍͕ݟ͑Δ GraphQL ※Ϧιʔε: αʔόʔ಺ͰऔΓѻΘΕΔσʔλͷҙ ※ৼΔ෣͍: ΫϥΠΞϯτͰϢʔβʔ͕࣮ߦ͢Δಈ࡞ͷҙ σʔλΛߋ৽͢Δ΍ͭ

Slide 7

Slide 7 text

ྫ ͑ ͹ (2) POST: /users/:id/followΛmutationʹ͢Δ mutation createFollowee(id: $id) { user { id name } } mutation follow(id: $id) { user { id name } } FolloweeͬͯϦϨʔγϣϯ͕ݟ͑ͯ͠·͏ “follow”Ͱ1ͭͷৼΔ෣͍͕ݟ͑Δ (ϢʔβʔΛϑΥϩʔ͢ΔͨΊͷΤϯυϙΠϯτ) ײ͡Δྗ͕େࣄ 2.2 X O

Slide 8

Slide 8 text

ͳͥ͜Ε͕ྑ͍ͱࢥ͏ͷ͔ ཧ ༝ 3 GraphQL͸όοΫΤϯυͷσʔλߏ଄Λ஌Βͳ͍ ΫϥΠΞϯτͷ։ൃऀͨͪͷͨΊʹ࡞ΒΕ͔ͨΒ ͭ·Γྺ࢙తഎܠ

Slide 9

Slide 9 text

ྺ࢙తഎܠ ཧ ༝ 3 ΫϥΠΞϯτ࡞Δਓͱαʔόʔ࡞Δਓ͸ผ(ͷ͸ͣ) σΧ͍૊৫Ͱෳࡶͳσʔλߏ଄ͷαʔϏεΛӡ༻͍ͯ͠Δதɺ
 σʔλߏ଄Λ஌Βͳ͍ਓͰ΋ָʹཉ͍͠σʔλΛऔಘ͍ͨ͠ GraphQLΛ࡞ͬͨͷ͸Facebook

Slide 10

Slide 10 text

ྺ࢙తഎܠ ཧ ༝ 3 (࣮࢞ͷ౤ߘ) • ༑ୡͷ౤ߘͷதʹ༑ୡͷ༑ୡͷίϝϯτ͕ݟ͑Δ • ͍͍Ͷʹ͸ࣗ෼ͷ༑ୡ͕༏ઌදࣔ͞ΕΔ ϦϨʔγϣϯΛ͜Ͷ͘Γճ͍ͯ͠Δ

Slide 11

Slide 11 text

ྺ࢙తഎܠ ཧ ༝ 3 ϦιʔεAΛऔ͖ͬͯͨΒͦͷidʹج͍ͮͯ
 ϦιʔεBΛऔ͖ͬͯͯ…. 
 Έ͍ͨͳ࿩͕άνϟάνϟʹଓ͍͍ͯ͘ RESTͰ΍ΔͱԿ౓΋ϦΫΤετΛૹΔඞཁ͕͋Δ ͜ΕΛָʹͨͯ͘͠ੜ·Εͨͷ͕GraphQL

Slide 12

Slide 12 text

ݴ͍͍ͨ͜ͱ ݁ ࿦ ໊લͷཪʹόοΫΤϯυ͕ݟ͑Δ 5 REST೴ ໊લͷཪʹΫϥΠΞϯτ͕ݟ͑Δ GraphQL ※͜Ε͸ࢲͷࢦ਑Ͱ͋ͬͯղͰ͸͋Γ·ͤΜ

Slide 13

Slide 13 text