RESTग़ͷͨΊͷ໋໊ͷasmsuechan
View Slide
asmsuechanࣗݾհ0ݸਓϓϩμΫτͱ͔ͰGraphQLͬͯΔϑϩϯτɺαʔόʔɺͪΐͬͱΫϥυAlibaba Cloud MVP
GraphQLͷ໊લ͚ࠓ͢͜ͱ“GraphQLͬΆ͍”໊લʹ ͢ΔͨΊʹࢲ͕ҙ͍ࣝͯ͠Δ͜ͱ1querymutationͷ໊લͷ
(1) queryͷ߹໊݁લͷཪʹόοΫΤϯυͷಈ࡞͕ݟ͑Δ2.1REST໊લͷཪʹཉ͍͠σʔλ͕ݟ͑Δ GraphQLͿͬͪΌ͚queryͷ໋໊RESTͱ͋·Γ͕ࠩͳ͍ؾ͢ΔσʔλΛऔͬͯ͘Δͭ
(1) GET: /users/:idΛqueryʹ͢Δྫ͑getUser(id: $id) {email name}(ਖ਼͜ΕશવڐͤΔ)ϢʔβʔΛใΛදࣔ͢ΔͨΊͷΤϯυϙΠϯτ2.1user(id: $id) {email name}X O???ʮԶgetUser͍ͨ͠Μ͡Όͳͯ͘userͷใ͕ཉ͍͠ΜͩΑʯ
(2) mutationͷ߹໊݁લͷཪʹϦιʔε͕ݟ͑Δ2.2REST໊લͷཪʹৼΔ͍͕ݟ͑Δ GraphQL※Ϧιʔε: αʔόʔͰऔΓѻΘΕΔσʔλͷҙ※ৼΔ͍: ΫϥΠΞϯτͰϢʔβʔ͕࣮ߦ͢Δಈ࡞ͷҙσʔλΛߋ৽͢Δͭ
ྫ͑(2) POST: /users/:id/followΛmutationʹ͢ΔmutationcreateFollowee(id: $id) {user { id name }}mutation follow(id: $id) {user { id name }}FolloweeͬͯϦϨʔγϣϯ͕ݟ͑ͯ͠·͏ “follow”Ͱ1ͭͷৼΔ͍͕ݟ͑Δ(ϢʔβʔΛϑΥϩʔ͢ΔͨΊͷΤϯυϙΠϯτ)ײ͡Δྗ͕େࣄ2.2X O
ͳͥ͜Ε͕ྑ͍ͱࢥ͏ͷ͔ཧ༝3GraphQLόοΫΤϯυͷσʔλߏΛΒͳ͍ΫϥΠΞϯτͷ։ൃऀͨͪͷͨΊʹ࡞ΒΕ͔ͨΒͭ·Γྺ࢙తഎܠ
ྺ࢙తഎܠཧ༝3ΫϥΠΞϯτ࡞Δਓͱαʔόʔ࡞Δਓผ(ͷͣ)σΧ͍৫ͰෳࡶͳσʔλߏͷαʔϏεΛӡ༻͍ͯ͠Δதɺ σʔλߏΛΒͳ͍ਓͰָʹཉ͍͠σʔλΛऔಘ͍ͨ͠GraphQLΛ࡞ͬͨͷFacebook
ྺ࢙తഎܠཧ༝3(࣮࢞ͷߘ)• ༑ୡͷߘͷதʹ༑ୡͷ༑ୡͷίϝϯτ͕ݟ͑Δ• ͍͍Ͷʹࣗͷ༑ୡ͕༏ઌදࣔ͞ΕΔϦϨʔγϣϯΛ͜Ͷ͘Γճ͍ͯ͠Δ
ྺ࢙తഎܠཧ༝3ϦιʔεAΛऔ͖ͬͯͨΒͦͷidʹج͍ͮͯ ϦιʔεBΛऔ͖ͬͯͯ…. Έ͍ͨͳ͕άνϟάνϟʹଓ͍͍ͯ͘RESTͰΔͱԿϦΫΤετΛૹΔඞཁ͕͋Δ͜ΕΛָʹͨͯ͘͠ੜ·Εͨͷ͕GraphQL
ݴ͍͍ͨ͜ͱ໊݁લͷཪʹόοΫΤϯυ͕ݟ͑Δ5REST໊લͷཪʹΫϥΠΞϯτ͕ݟ͑Δ GraphQL※͜ΕࢲͷࢦͰ͋ͬͯղͰ͋Γ·ͤΜ
ऴ