Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Hasuraを活用するためのTips集
Search
KazukiHayase
December 09, 2022
Technology
0
35k
Hasuraを活用するためのTips集
KazukiHayase
December 09, 2022
Tweet
Share
More Decks by KazukiHayase
See All by KazukiHayase
entのPrivacy機能とgo/astを使って、意図しないDBアクセスを防ぐ
kazukihayase
1
340
go testのキャッシュの仕組みにDeep Diveする
kazukihayase
0
97
要件定義・デザインフェーズでもAIを活用して、コミュニケーションの密度を高める
kazukihayase
0
450
CIでのgolangci-lintの実行を約90%削減した話
kazukihayase
0
530
もし今からGraphQLを採用するなら
kazukihayase
13
5.7k
Goでテストをしやすくするためにやったこと
kazukihayase
1
890
GraphQLクライアントの技術選定 2023冬
kazukihayase
9
7.6k
Introduction and Insights of the Hasura-based Architecture
kazukihayase
0
1.1k
自分だけが頑張るのをやめて、フルスタックなチームを作る
kazukihayase
2
3.5k
Other Decks in Technology
See All in Technology
Snowflake Industry Days 2025 Nowcast
takumimukaiyama
0
130
Microsoft Agent Frameworkの可観測性
tomokusaba
1
120
通勤手当申請チェックエージェント開発のリアル
whisaiyo
3
480
AI with TiDD
shiraji
1
300
投資戦略を量産せよ 2 - マケデコセミナー(2025/12/26)
gamella
0
450
20251219 OpenIDファウンデーション・ジャパン紹介 / OpenID Foundation Japan Intro
oidfj
0
510
業務の煩悩を祓うAI活用術108選 / AI 108 Usages
smartbank
9
13k
Bedrock AgentCore Evaluationsで学ぶLLM as a judge入門
shichijoyuhi
2
260
20251222_サンフランシスコサバイバル術
ponponmikankan
2
140
2025年のデザインシステムとAI 活用を振り返る
leveragestech
0
320
マイクロサービスへの5年間 ぶっちゃけ何をしてどうなったか
joker1007
21
8.3k
Building Serverless AI Memory with Mastra × AWS
vvatanabe
0
610
Featured
See All Featured
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
The SEO Collaboration Effect
kristinabergwall1
0
310
We Have a Design System, Now What?
morganepeng
54
7.9k
Getting science done with accelerated Python computing platforms
jacobtomlinson
0
79
Designing for Timeless Needs
cassininazir
0
95
Making the Leap to Tech Lead
cromwellryan
135
9.7k
Thoughts on Productivity
jonyablonski
73
5k
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
45
Facilitating Awesome Meetings
lara
57
6.7k
Raft: Consensus for Rubyists
vanstee
141
7.3k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.3k
Navigating Team Friction
lara
191
16k
Transcript
HasuraΛ׆༻͢ΔͨΊͷTipsू 2022/08/30 ։ൃ2෦ ૣً
ࣗݾհ • ૣً • ग़ཧSaa S ◦ ϓϩδΣΫτϦʔμʔ ◦ ϑϧελοΫΤϯδχΞ
• ࠷ۙͷϚΠϒʔϜ ◦ ݸਓ։ൃ࠶։͠·ͨ͠ ▪ Cloud Run(gqlgen) + Firestore(Datastore mode ) ▪ Next.js + Rela y ◦ Ҿͬӽ͠४උத
ΞδΣϯμ • Hasuraͱ • HasuraΛ׆༻͢ΔͨΊͷTipsू ◦ Upsertͷ׆༻ ◦ τϥϯβΫγϣϯ ◦
ϦϨʔγϣϯΛؚΜͩMutatio n ◦ σΟϨΫςΟϒʹΑΔ੍ޚ • ͓ΘΓʹ
ΞδΣϯμ • Hasuraͱ • HasuraΛ׆༻͢ΔͨΊͷTipsू ◦ Upsertͷ׆༻ ◦ τϥϯβΫγϣϯ ◦
ϦϨʔγϣϯΛؚΜͩMutatio n ◦ σΟϨΫςΟϒʹΑΔ੍ޚ • ͓ΘΓʹ
Hasuraͱ • DBͷεΩʔϚ͔ΒGraphQLαʔόʔΛੜͰ͖ΔΦʔϓϯιʔε • DB͑͋͞Εαʔόʔཱ͕ͯΒΕΔͷͰ࣮ίετ͕֨ஈʹݮΔ
ΧελϜϩδοΫʹ͍ͭͯ • ΧελϜϩδοΫΛՃ͢Δํ๏ΛHasuraఏڙ͍ͯ͠Δ ◦ Actio n ◦ Remote Schem a
• ҙ֎ͱΧελϜϩδοΫΛ࣮͍ͨ͠໘ଟ͍ • ࣮ͨͩ͠ίετɺϝϯςφϯείετ͕૿Ճ͢Δ
HasuraͷػೳΛ׆༻͢Δ͜ͱͰ ΧελϜϩδοΫͷ࣮ΛݮΒ͢͜ͱ͕Ͱ͖Δ
ΞδΣϯμ • Hasuraͱ • HasuraΛ׆༻͢ΔͨΊͷTipsू ◦ Upsertͷ׆༻ ◦ τϥϯβΫγϣϯ ◦
ϦϨʔγϣϯΛؚΜͩMutatio n ◦ σΟϨΫςΟϒʹΑΔ੍ޚ • ͓ΘΓʹ
Upsertͷ׆༻ on_conflictΛࢦఆ͢Δ͜ͱͰUpsertͰ࣮ߦ
Upsert༻࣌ͷҙ • σʔλ͕ଘࡏ͢Δ͔Θ͔Βͳ͍߹ͷΈ༻͢Δ ◦ ϕʔεͷMutationInsertͳͷͰશͯͷඞਢύϥϝʔλΛ͢ඞཁ͕͋Δ ◦ Updateͷ༻ͱͯ͑͠ͳ͍ • σʔλ͕ଘࡏ͢Δ͜ͱ͕Θ͔͍ͬͯΔ߹UpdateΛ༻͢Δ
ΞδΣϯμ • Hasuraͱ • HasuraΛ׆༻͢ΔͨΊͷTipsू ◦ Upsertͷ׆༻ ◦ τϥϯβΫγϣϯ ◦
ϦϨʔγϣϯΛؚΜͩMutatio n ◦ σΟϨΫςΟϒʹΑΔ੍ޚ • ͓ΘΓʹ
τϥϯβΫγϣϯ Hasura1ͭͷϦΫΤετʹෳͷMutationؚ͕·Ε͍ͯΔ߹ɺ ֤Mutation1ͭτϥϯβΫγϣϯͰॱ൪ʹ࣮ߦ͞ΕΔ ͲΕ͔ҰͭͰࣦഊͨ͠߹શͯͷMutation͕ϩʔϧόοΫ͞ΕΔ
τϥϯβΫγϣϯͷྫ deletePost͕ࣦഊͯ͠SampleMutationશମ͕ϩʔϧόοΫ͞ΕΔ ϩʔϧόοΫ͞ΕΔͷͰtaggingsআ͞Ε͍ͯͳ͍
ΞδΣϯμ • Hasuraͱ • HasuraΛ׆༻͢ΔͨΊͷTipsू ◦ Upsertͷ׆༻ ◦ τϥϯβΫγϣϯ ◦
ϦϨʔγϣϯΛؚΜͩMutatio n ◦ σΟϨΫςΟϒʹΑΔ੍ޚ • ͓ΘΓʹ
ϦϨʔγϣϯΛؚΜͩMutation MutationͷΈཱͯ࣍ୈͰ༷ʑͳϦϨʔγϣϯΛؚΜͩσʔλͷ࡞͕Մೳ • 1: 1 • 1: N • N:N
1:1ͷϦϨʔγϣϯ profileͱͦΕʹඥͮ͘userΛ࡞ userͱͦΕʹඥͮ͘profileΛ࡞͠Α͏ͱ͢ΔͱΤϥʔ
ΦϒδΣΫτͷ࡞ॱং σϑΥϧτͰ1:1ͷϦϨʔγϣϯԼهͷॱ൪ͰΦϒδΣΫτ͕࡞͞ΕΔ 1. ࢠΦϒδΣΫτΛ࡞ͯ͠idΛऔಘ 2. FKΧϥϜʹ 1 Ͱऔಘͨ͠idΛઃఆͯ͠ΦϒδΣΫτΛ࡞ ※ ϦϨʔγϣϯ࡞࣌ͷinsertion_orderͷઃఆͰॱ൪มߋՄೳ
1:NͷϦϨʔγϣϯ ߘͱͦΕʹඥ͍͍ͮ͘ͶΛ࡞
ΦϒδΣΫτͷ࡞ॱং 1:NͷϦϨʔγϣϯԼهͷॱ൪ͰΦϒδΣΫτ͕࡞͞ΕΔ 1. ΦϒδΣΫτΛ࡞ͯ͠idΛऔಘ 2. FKΧϥϜʹ 1 Ͱऔಘͨ͠idΛઃఆͯ͠ࢠΦϒδΣΫτΛ࡞
N:NͷϦϨʔγϣϯ ߘͱͦΕʹඥͮ͘λάΛ࡞
ߴͳN:NͷϦϨʔγϣϯ ߘͱͦΕʹඥͮ͘λάΛ࡞ɺλάͷ࡞Upsert λά͕͢Ͱʹଘࡏ͢Δ߹ͦͷλά ͱඥ͚ɺλά͕ଘࡏ͠ͳ͍߹λ άΛ࡞ͯ͠ඥ͚ͱ͍ͬͨෳࡶͳ Mutation࣮Մೳ
ΞδΣϯμ • Hasuraͱ • HasuraΛ׆༻͢ΔͨΊͷTipsू ◦ Upsertͷ׆༻ ◦ τϥϯβΫγϣϯ ◦
ϦϨʔγϣϯΛؚΜͩMutatio n ◦ σΟϨΫςΟϒʹΑΔ੍ޚ • ͓ΘΓʹ
σΟϨΫςΟϒʹΑΔ੍ޚ Hasuraඪ४σΟϨΫςΟϒ͕ར༻Մೳ σΟϨΫςΟϒΛ׆༻͢Δ͜ͱͰQuery, Mutationͷදݱͷ෯͕͕Δ
σΟϨΫςΟϒʹΑΔ੍ޚ @includeͰऔಘ͢ΔϑΟʔϧυΛ੍ޚ @skipͰ࣮ߦ͢ΔMutationΛ੍ޚ
σΟϨΫςΟϒʹΑΔ੍ޚ ؔ࿈ͷͳ͍MutationͰ͋ΕϦΫΤετͷׂͰରԠՄೳ ಉ͡τϥϯβΫγϣϯͰMutationͷ࣮ߦΛ੍ޚ͍ͨ͠߹ σΟϨΫςΟϒͰͷ੍ޚ͕༗ޮ
͓ΘΓʹ • HasuraΛ׆༻͢Δ͜ͱͰόοΫΤϯυͷ࣮ΛݮΒ͢͜ͱ͕Ͱ͖Δ • ଞʹHasuraͷػೳ͚ͩͰ࣮ݱͰ͖Δ͜ͱੵۃతʹ׆༻͢Δͷ͕ ྑ͍ͱࢥ͍·͢ʂ