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について調べてみた
Search
yuorei
December 21, 2022
Technology
0
67
GraphQLについて調べてみた
GraphQLのについて調べてみました。
yuorei
December 21, 2022
Tweet
Share
More Decks by yuorei
See All by yuorei
オブザーバビリティを意識したアプリケーション/Observability-Aware Applications
yuorei
0
45
Rust + Cloudflare Workersで作る HLS 認証プロキシ
yuorei
0
91
2022-10-15大LT.pdf
yuorei
0
20
Pythonで Webスクレイピングをしてみよう!
yuorei
0
320
GoでLINEbot入門
yuorei
0
67
Other Decks in Technology
See All in Technology
AIのAIによるAIのための出力評価と改善
chocoyama
2
530
Microsoft Build 2025 技術/製品動向 for Microsoft Startup Tech Community
torumakabe
2
250
IIWレポートからみるID業界で話題のMCP
fujie
0
760
エンジニア向け技術スタック情報
kauche
1
220
第9回情シス転職ミートアップ_テックタッチ株式会社
forester3003
0
210
Node-REDのFunctionノードでMCPサーバーの実装を試してみた / Node-RED × MCP 勉強会 vol.1
you
PRO
0
110
Wasm元年
askua
0
130
Claude Code Actionを使ったコード品質改善の取り組み
potix2
PRO
6
2k
TechLION vol.41~MySQLユーザ会のほうから来ました / techlion41_mysql
sakaik
0
170
How Community Opened Global Doors
hiroramos4
PRO
1
100
_第3回__AIxIoTビジネス共創ラボ紹介資料_20250617.pdf
iotcomjpadmin
0
150
“社内”だけで完結していた私が、AWS Community Builder になるまで
nagisa53
1
330
Featured
See All Featured
Optimising Largest Contentful Paint
csswizardry
37
3.3k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
8
670
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
Building Flexible Design Systems
yeseniaperezcruz
328
39k
YesSQL, Process and Tooling at Scale
rocio
173
14k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
252
21k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
357
30k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
How to train your dragon (web standard)
notwaldorf
92
6.1k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
8
790
Raft: Consensus for Rubyists
vanstee
140
7k
Fantastic passwords and where to find them - at NoRuKo
philnash
51
3.3k
Transcript
GraphQL ユオレイ 2022/11 Zli LT
自己紹介 • ハンドルネーム : ユオレイ • 学部1年 • 最近はGo言語でバックエンドやっています •
pythonもさわったことあります • インターホンX LINE
GraphQLとは何か GraphQLとはAPIのために作られたクエリ言語です Facebook社が開発・提供しています 2015年にオープンソース化されました
どこが使っているのか
GraphQLのメリット
GraphQLのメリット • 異なるリソースに対して異なるHTTPのエンドポイントをあてるのではなく、 HTTPエンドポイントに「クエリ」を POST する点です 命令
• クライアントがAPIを呼び出すことで、バックエンドAPIから必要 なデータを正確に取得できるように設計されています • 要求された特定のデータのみ取得します • すべてのデータが1 つのエンドポイントで提供されます /endpoint1 /endpoint2
複数 一つ /endpoint 複数
オーバーフェッチ問題 アンダーフェッチ問題
オーバーフェッチ問題 必要以上のデータを取得していること Too much
例 userのid,lastnameのみが欲しいとします REST API でこれを取得する場合は 一つのエンドポイントから他の情報もとってきてしまい処理が 重くなってしまいます firstnameもとってきてしまう 回避するにはエンドポイントにクエリをつけなくてはならない
例 users から id,name,のみを取り出したいとき GraphQL APIでは一つのエンドポイントからクエリを出すことで 必要なものを取り出せるので { users{ id lastname
} }
"users": [ { "id": "0701", "lastname": "Yuorei"
アンダーフェッチ問題 エンドポイントの呼び出しで十分なデータがないため、2番目 のエンドポイントを呼び出す必要があります。 例としてusersのid,lastnameの他にusersに紐付いている gradesをとってくる時 rest apiでは2つのエンドポイントが必要になりますが GraphQLでは1つのクエリに追加することで一度で取得でき ます
/endpoint1 /endpoint2 複数 一つ /endpoint 複数
デメリット • キャッシュが複雑になる • バックエンドの実装の難易度が高い • 比較的新しい技術なので情報量が少ない
実装できればほとんどデ メリットがないんです!
実際に動かします
ありがとうございました