Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
最近話題のGraphQLサーバー、Hasuraを半年使ってみて
Search
Shoki Hata
December 11, 2021
Programming
530
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
800
GoのLanguage Server Protocol実装、 「gopls」の自動補完の仕組みを学ぶ
shohata
8
2.5k
ユニットテスト並行化の導入と運用:Goでの事例紹介
shohata
1
900
無理なく始めるGoでのユニットテストの並行化戦略
shohata
2
2.3k
Contribute to Hasura
shohata
0
740
Hasura Conference 2022 Shoki_Hata
shohata
0
290
Other Decks in Programming
See All in Programming
Snowflake Summitでの新機能 CoCo / CoWork / snowflake-summit-2026-overall-what-new-coco
tatsuhiro
1
220
Contextとはなにか
chiroruxx
1
390
SREの積み重ねがAI駆動開発のガードレールになった ― 7つの実践/SRE Guardrails The 7
tomoyakitaura
7
3.2k
はてなアカウント基盤 State of the Union
cockscomb
1
1.3k
LLMによるContent Moderationの本番運用の裏側と品質担保への挑戦
suikabar
3
830
Go1.27で導入されるジェネリクスメソッドでできること
mackee
0
250
Embedded SREと共に達成した会員管理システムのAWS移行 - SRE NEXT 2026 ランチスポンサーセッション
niftycorp
PRO
0
1.8k
1B+ /day規模のログを管理する技術
broadleaf
0
130
技術記事、 専門家としてのプログラマ、 言語化
mizchi
14
7.3k
Vue × Nuxt × Oxc どこまで使える?実運用の現在地
andpad
0
360
Welcome to the "Parametricity" 🏙️ − Generic だけど Specific な世界 −
guvalif
1
130
エンジニアと一緒にテストコードの設計と実装を改善した話
mototakatsu
0
250
Featured
See All Featured
Test your architecture with Archunit
thirion
1
2.3k
A Soul's Torment
seathinner
6
3k
Producing Creativity
orderedlist
PRO
348
40k
We Have a Design System, Now What?
morganepeng
55
8.2k
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
118
120k
WCS-LA-2024
lcolladotor
0
680
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
72
40k
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
370
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
62
44k
Exploring anti-patterns in Rails
aemeredith
3
440
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.3k
Mobile First: as difficult as doing things right
swwweet
225
10k
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年続く会社にすること」