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
最近話題のGraphQLサーバー、Hasuraを半年使ってみて
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Shoki Hata
December 11, 2021
Programming
540
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
最近話題のGraphQLサーバー、Hasuraを半年使ってみて
誤表記:
・誤:「時期バージョン(v1.1.0)」
・正:「時期バージョン(v2.1.0)」
Shoki Hata
December 11, 2021
More Decks by Shoki Hata
See All by Shoki Hata
panicと向き合うGo開発 - nilawayで探る見逃されるnil参照とその対策
shohata
1
840
GoのLanguage Server Protocol実装、 「gopls」の自動補完の仕組みを学ぶ
shohata
8
2.6k
ユニットテスト並行化の導入と運用:Goでの事例紹介
shohata
1
950
無理なく始めるGoでのユニットテストの並行化戦略
shohata
2
2.4k
Contribute to Hasura
shohata
0
750
Hasura Conference 2022 Shoki_Hata
shohata
0
300
Other Decks in Programming
See All in Programming
A2UI for Android: Safely Rendering AI-Generated UI with Jetpack Compose - DroidKaigi 2026
itsmedreamwalker
0
140
JPUG勉強会 OSSデータベースの内部構造を理解しよう(第2回)
oga5
0
230
そのリトライ、死んだコネクションを使い回していませんか ── GoのHTTPクライアントとHTTP/2を実プロダクト障害から学び直す
myus4a
0
140
フロントエンドUIフレームワークのこれまでとこれから
ssssota
5
2.8k
Streamlitで実現する自然言語データアプリ開発
ayumu_yamaguchi
0
280
Omarchy Tokyo やると聞いて UMPC 買ってセットアップしてきた
mtsmfm
0
140
個人開発基盤をまるごとCloudflareに引っ越して爆速で総合的体験を向上させた話
tinykitten
0
190
Snowflakeで業務アプリを作ろう。 Snowflakeのアプリ機能解説&実践ガイド
ayumu_yamaguchi
1
280
『寄り添うラジオ』をAIで作る 体験価値から逆算した、会話しないUXと品質設計
theoriatec2024
3
180
モデルのリファクタリングが難しいと思ったら、そもそも複雑だったのはビジネス仕様だった ? / is-the-business-domain-the-real-complexity
hatsu38
0
270
GraphRAGのKnowledge Graphを 直接!見る/View-GraphRAG's-KnowledgeGraph-directly!
tyumugi1113
1
330
AI Agent時代のリアーキテクチャ戦略と実践
hokaccha
9
4.6k
Featured
See All Featured
Heart Work Chapter 1 - Part 1
lfama
PRO
10
36k
How to Ace a Technical Interview
jacobian
281
24k
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3.7k
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
810
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.8k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
4.8k
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
240
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
690
Are puppies a ranking factor?
jonoalderson
2
3.9k
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
1
460
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
1
520
Claude Code のすすめ
schroneko
67
230k
Transcript
0 2021/12/10 Toyama.rb #70 Shoki Hata(@sho-hata) 最近話題のGraphQLサーバー、 Hasuraを半年使ってみて
1 © 2020 Ateam Inc. 自己紹介 Shoki
Hata バックエンドエンジニア @株式会社エイチーム引越し侍 sho_hata_ sho-hata 業務では主にGo、たまにTypeScriptでも 書いています。 2020新卒として株式会社エイチームに入社、 それまでは教員養成系の大学院にいました
2 © 2021 Ateam Inc. 2 今日はGraphQLサーバー、Hasuraについて
3 © 2021 Ateam Inc. 3 新サービスの開発&プライベートで
半年間使用した経験を踏まえて、 簡単にまとめてみました
4 © 2020 Ateam Inc. 話すこと •
Hasuraの概要 • 携わった新サービス開発での使われ方 • 実際に使ってみて ◦ メリット ◦ デメリット
5 © 2021 Ateam Inc. 5 新サービスをリリースしました🎉
6 © 2021 Ateam Inc. 6 新サービスの技術構成
• フロントエンド ◦ Next.js • バックエンド ◦ Hasura(GraphQL) ◦ Go(REST) • 認証 ◦ Firebase 今回の内容!
7 © 2021 Ateam Inc. 7 新サービスの技術選定
- 早くリリースしたい! - フロントエンドのユースケースに合わせた 柔軟なAPIがほしい! - 新サービスはログイン機能があるから、 データ操作はよりセキュアにしたいな!
8 © 2021 Ateam Inc. 8 Hasuraが全部やってくれた
9 © 2021 Ateam Inc. 9 Hasura
GraphQL Engine セキュアで高性能なAPIを迅速に 構築できるGraphQLサーバー Hasuraとは?
10 © 2021 Ateam Inc. 10 メリットその1
工数ゼロで、GraphQL APIが作成可能
11 © 2021 Ateam Inc. 11 テーブル設計さえすれば自動で
リゾルバを生成してくれる!
12 © 2021 Ateam Inc. 12 メリットその2
組み込みで実装されている認証・認可機能が強力
13 © 2021 Ateam Inc. 13 JWT・Webhookを使用した認証認可が
手軽に導入可能 https://hasura.io/docs/latest/graphql/core/auth/authentication/jwt.html#auth-jwt
14 © 2021 Ateam Inc. 14 JWTを使用したカラムベースの細かな
CRUD操作制限
15 © 2021 Ateam Inc. 15 メリットその3
拡張性が高い
16 © 2021 Ateam Inc. 16 ビジネスロジックは外部REST/GraphQL
APIで 拡張可能 https://hasura.io/docs/latest/graphql/core/actions/index.html#actions
17 © 2020 Ateam Inc. 新サービスにHasuraを本番導入した今、技術選定を振り返ると... -
早くリリースしたい! → 基本的なリゾルバは工数0で実現! - フロントエンドのユースケースに合わせた柔軟なAPIがほしい! → 状況に応じて、外部REST/GraphQL APIで拡張! - ログイン機能があるからデータ操作はよりセキュアにしたいな! → JWTベースの認証/認可、カラムベースのCRUD操作で制限!
18 © 2021 Ateam Inc. 18 ただ、デメリットやつらみもちらほら...
19 © 2021 Ateam Inc. 19 基本的なCRUD操作
< ビジネスロジック になってくると、Hasuraのうまみが少なくなってくる
20 © 2021 Ateam Inc. 20 Hasuraと接続する外部REST/GraphQL
APIにかかる制限が多い
21 © 2021 Ateam Inc. 21 -
接続先エンドポイントはPOSTにする必要がある - Webhookで外部APIと通信するため - 時期バージョン(v1.1.0)で解決予定 - 接続APIのレスポンスをフラットにする必要がある - ネストしたレスポンスの型をGraphQLスキーマに変換できない 接続先APIにかかる制限の例
22 © 2021 Ateam Inc. 22 -
総合して、Hasuraは高性能かつ多機能なGraqhQLサーバー - 個人開発、小〜中規模のサービスでは絶大な恩恵を受けられる - 比重が極端に CRUD < ビジネスロジックだとメリットは薄い まとめ
23 © 2020 Ateam Inc. もっと踏み込んだ内容については、以下にまとめています Qiita記事
- 引越し業界初の新サービスを支えるバックエンドの技術 - https://qiita.com/sho-hata/items/054c77392cc61bc2f3ac - 多機能なGraphQLサーバー: Hasura GraphQL Engineを知っておき たい人が読む記事 - https://qiita.com/sho-hata/items/2dbd41be42662007071e
24 「みんなで幸せになれる会社にすること」 「今から100年続く会社にすること」