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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
yuorei
December 21, 2022
Technology
0
68
GraphQLについて調べてみた
GraphQLのについて調べてみました。
yuorei
December 21, 2022
Tweet
Share
More Decks by yuorei
See All by yuorei
オブザーバビリティを意識したアプリケーション/Observability-Aware Applications
yuorei
0
61
Rust + Cloudflare Workersで作る HLS 認証プロキシ
yuorei
0
150
2022-10-15大LT.pdf
yuorei
0
23
GoでLINEbot入門
yuorei
0
70
Other Decks in Technology
See All in Technology
茨城の思い出を振り返る ~CDKのセキュリティを添えて~ / 20260201 Mitsutoshi Matsuo
shift_evolve
PRO
1
380
広告の効果検証を題材にした因果推論の精度検証について
zozotech
PRO
0
210
AzureでのIaC - Bicep? Terraform? それ早く言ってよ会議
torumakabe
1
600
22nd ACRi Webinar - NTT Kawahara-san's slide
nao_sumikawa
0
100
インフラエンジニア必見!Kubernetesを用いたクラウドネイティブ設計ポイント大全
daitak
1
380
Agent Skils
dip_tech
PRO
0
130
AWS Network Firewall Proxyを触ってみた
nagisa53
1
240
Cloud Runでコロプラが挑む 生成AI×ゲーム『神魔狩りのツクヨミ』の裏側
colopl
0
130
生成AIを活用した音声文字起こしシステムの2つの構築パターンについて
miu_crescent
PRO
3
220
登壇駆動学習のすすめ — CfPのネタの見つけ方と書くときに意識していること
bicstone
3
130
OpenShiftでllm-dを動かそう!
jpishikawa
0
140
Claude_CodeでSEOを最適化する_AI_Ops_Community_Vol.2__マーケティングx_AIはここまで進化した.pdf
riku_423
2
610
Featured
See All Featured
VelocityConf: Rendering Performance Case Studies
addyosmani
333
24k
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
120
Product Roadmaps are Hard
iamctodd
PRO
55
12k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.4k
How to Think Like a Performance Engineer
csswizardry
28
2.5k
エンジニアに許された特別な時間の終わり
watany
106
230k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
What does AI have to do with Human Rights?
axbom
PRO
0
2k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.2k
Bash Introduction
62gerente
615
210k
Building the Perfect Custom Keyboard
takai
2
690
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.6k
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 複数
デメリット • キャッシュが複雑になる • バックエンドの実装の難易度が高い • 比較的新しい技術なので情報量が少ない
実装できればほとんどデ メリットがないんです!
実際に動かします
ありがとうございました