Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
新潟WEBアプリケーション勉強会 Vol.1 LT GraphQL Federation
Search
ゆきか
July 21, 2022
Programming
150
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
新潟WEBアプリケーション勉強会 Vol.1 LT GraphQL Federation
ゆきか
July 21, 2022
More Decks by ゆきか
See All by ゆきか
新潟の鮨のはなし 飯テロver
yukikayuki
0
340
GitHub Actionsと GitHub CLIと permissions
yukikayuki
0
220
React Hooks勉強会 vol.5
yukikayuki
2
390
Other Decks in Programming
See All in Programming
20260914 AIエージェント時代のPlatform Engineering LLM基盤とプロダクトの責務境界線
kanfab1
7
2.4k
WebRTC映像をAirPlayに対応させる挑戦.pdf
monolithic_adam
0
350
コードレビューのボトルネックを"する側"と"される側"の両面から解消する
yub0n
2
1.5k
re:Inventに行く前に知っておきたい現地参加のノウハウ
nokomoro3
0
380
モバイル交通系ICへのチャージ実例から考える、クロスプラットフォーム開発におけるiOS実機テスト設計とCI運用
yusuga
1
580
設計次第でAIコードの読む量は減らせる / designing-for-code-reading
minodriven
34
16k
UPDATE をやめる — EF Core でマスタをバージョン管理する
panda728
PRO
0
1.1k
Heart of Swift Concurrency
koher
0
1.2k
RAG の “R” を Swift で覗いてみる 〜「意味から探す」検索の仕組み〜
nao_randd
0
120
モデルのリファクタリングが難しいと思ったら、そもそも複雑だったのはビジネス仕様だった ? / is-the-business-domain-the-real-complexity
hatsu38
0
450
When benchmarks go bad - what I learned from measuring performance wrong
hollycummins
0
180
[Rails World 2026] Durable orchestration on Rails: from continuation to workflow
palkan
1
490
Featured
See All Featured
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
1
450
Technical Leadership for Architectural Decision Making
baasie
3
590
Color Theory Basics | Prateek | Gurzu
gurzu
1
480
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
700
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
690
A designer walks into a library…
pauljervisheath
211
25k
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.5k
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.6k
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
2.2k
Building a Scalable Design System with Sketch
lauravandoore
464
34k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.8k
Transcript
!@ZVLJLBZVLJ (SBQI2-'FEFSBUJPO ৽ׁ8&#ΞϓϦέʔγϣϯษڧձ7PM-5
ࣗݾհ w 5BLBZVLJ,BOFEB!@ZVLJLBZVLJ w גࣜձࣾ4QSPDLFU w ϑϩϯτΤϯυΤϯδχΞ w ࠷ۙ(PΛॻ͍͍ͯΔ
࣍ w (SBQI2-ͱ w ϚΠΫϩαʔϏεߏͰͷόοΫΤϯυ w (SBQI2-'FEFSBUJPO
(SBQI2-ͱ w ʹ'BDFCPPL ݱ.FUB ʹΑͬͯެ։͞Εͨ"1*͚ΫΤϦݴޠɺϥϯ λΠϜ w ճͷϦΫΤετͰඞཁͳϦιʔεΛऔಘ͢Δ͜ͱ͕Ͱ͖Δ w εΩʔϚϑΝʔετͰ։ൃՄೳ
4DIFNB 2VFSZ 3FTQPOTF query { posts { id title }
} { "data": { "posts": [ { "id": 1, "title": "title-1" }, { "id": 2, "title": "title-2" } ] } } 1045IUUQTFYBNQMFDPNHSBQIRM type Post { id: Int title: String content: String } type Query { post(id: Int): Post posts: [Post] } 4DIFNB 2VFSZ 3FTQPOTF
ϚΠΫϩαʔϏεߏͷόοΫΤϯυ w ϑϩϯτΤϯυͰ֤όοΫΤϯυΛୟ͘ w ϑϩϯτΤϯυͰ֤όοΫΤϯυΛೝ࣮ࣝͯ͠Λߦ͏ඞཁ͕͋Δ w ϑϩϯτΤϯυʹόοΫΤϯυ༻ͷಉ࣮͕͡૿͑Δ FHೝূͳͲ w
#''ΛڬΉ w όοΫΤϯυΛ࣮ͨ͠Β#''ʹରԠͨ͠ίʔυ͕ඞཁ
ΫϥΠΞϯτ͕֤όοΫΤϯυΛୟ͘ߏ #SPXTFS 6TFSTFSWJDF 1PTUTFSWJDF
#''ߏ #SPXTFS #'' 6TFSTFSWJDF 1PTUTFSWJDF
(SBQI2-'FEFSBUJPO "QPMMP'FEFSBUJPO w "QPMMP͕։ൃ͍ͯ͠Δɺෳͷ(SBQI2-"1*ΛΈ߹Θͤͨεʔύʔάϥϑ Λ࡞͢ΔͨΊͷɺڧྗͰΦʔϓϯͳΞʔΩςΫνϟ w ϚΠΫϩαʔϏεͷ(SBQI2-ͷTDIFNBΛΈ߹ΘͤͨεʔύʔάϥϑΛ࡞ ͢Δ͜ͱͰɺͭͷ(BUFXBZͷΤϯυϙΠϯτ͔Βશͯͷ(SBQI2-ͷϦι ʔεΞΫηεͰ͖Δ w
ࠓॳՆʹWʹͳͬͨ
(SBQI2-'FEFSBUJPOߏ #SPXTFS 4VQFSHSBQI HBUFXBZ 6TFSTVCHSBQI 1PTUTVCHSBQI
4VQFSHSBQI4DIFNBͷ࡞ type User @key(fields: "id") { id: Int! name: String!
} type Query { user(id: Int): User users: [User] } type Post { id: Int title: String content: String user: User } type User @key(fields: "id") { id: Int! } type Query { post(id: Int): Post posts: [Post] } type Post @join__type(graph: USERS) { id: Int title: String content: String user: User } type Query @join__type(graph: POSTS) @join__type(graph: USERS) { user(id: Int): User @join__field(graph: POSTS) users: [User] @join__field(graph: POSTS) post(id: Int): Post @join__field(graph: USERS) posts: [Post] @join__field(graph: USERS) } type User @join__type(graph: POSTS, key: "id") @join__type(graph: USERS, key: "id") { id: Int! name: String! @join__field(graph: POSTS) } 4VQFSHSBQI4DIFNB 6TFS4DIFNB 1PTU4DIFNB 3PWFS$-*
2VFSZ 3FTQPOTF query { posts { title user { name
} } } { "data": { "posts": [ { "title": "title-1", "user": { "name": "taro" } }, { "title": "title-2", "user": { "name": "jiro" } } ] } } 1045IUUQTFYBNQMFDPNHSBQIRM 2VFSZ 3FTQPOTF
(SBQI2-'FEFSBUJPOͷϝϦοτ w ෳ(SBQI2-αʔϏε͕͋ͬͯճͷϦΫΤετͰϦιʔεΛऔಘͰ͖Δ w 3&45ʹର͢ΔڧྗͳརΛγϯϓϧͳܗͰҡ࣋Ͱ͖Δ w (SBQI2-αʔϏεͷ࣮ʹूதͰ͖Δ w ΫϥΠΞϯτɾ#''Λҙࣝ͠ͳͯ͘ྑ͍ w
ෳνʔϜ͕νʔϜݸผͷόοΫΤϯυ։ൃʹϑΥʔΧεͰ͖Δ
ಋೖ࣌ͷϙΠϯτ ͩͱߟ͍͑ͯΔͱ͜Ζ w TVQFSHSBQIHBUFXBZ͕ࢀর͢ΔTDIFNBࣗମͷཧ w ৗʹTVQFSHSBQITDIFNBΛߏՄೳ͔Λݕࠪ͠ଓ͚Δඞཁ͕͋Δ w ΑΓεΩʔϚϑΝʔετͳ։ൃͷྲྀΕʹ w TVCHSBQIσϓϩΠޙʹTVQFSHSBQIHBUFXBZ͕ࢀর͢ΔTDIFNBͷߋ৽
w HBUFXBZ(SBQI2-ΫΤϦΛཧղ͢Δݡ͍ࢠͳͷͰɺσϓϩΠʹΑͬͯ TVCHSBQIͰར༻Մೳͳঢ়ଶʹͳͬͯɺHBUFXBZ͕ࢀর͢ΔTDIFNB͕ TVCHSBQIͰར༻Մೳʹͳ߲ͬͨΛө͍ͯ͠ͳ͍߹ɺΫϥΠΞϯτ͔Β ༻Ͱ͖ͳ͍
8FBSFIJSJOH 4FBSDIGPS<4QSPDLFU'PSLXFMM>POHPPHMF