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についての5分間
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Matsuo Obu
February 28, 2018
Programming
0
810
GraphQLについての5分間
GraphQLについて概要のまとめ。「とらのあな オタク×Node.js勉強会」で発表 (2018-02-28)
Matsuo Obu
February 28, 2018
Tweet
Share
More Decks by Matsuo Obu
See All by Matsuo Obu
Reactの歴史
mqtsuo02
0
1k
文学作品「檸檬」をReactで読む
mqtsuo02
1
500
EmotionでReactをstylingすればモテるかもしれない
mqtsuo02
0
620
僕が求めていたのはNext.jsだったんだ
mqtsuo02
0
690
Repro Tech Hands-on : Nuxt.js
mqtsuo02
1
920
ピピピのPWA
mqtsuo02
0
730
Create React App 読解特急
mqtsuo02
0
110
JekyllとBootstrapを使って静的なブログを作ってみたよ
mqtsuo02
0
92
Other Decks in Programming
See All in Programming
CSC307 Lecture 15
javiergs
PRO
0
220
nuget-server - あなたが必要だったNuGetサーバー
kekyo
PRO
0
180
grapheme_strrev関数が採択されました(あと雑感)
youkidearitai
PRO
1
210
どんと来い、データベース信頼性エンジニアリング / Introduction to DBRE
nnaka2992
1
160
maplibre-gl-layers - 地図に移動体たくさん表示したい
kekyo
PRO
0
190
DevinとClaude Code、SREの現場で使い倒してみた件
karia
1
940
米国のサイバーセキュリティタイムラインと見る Goの暗号パッケージの進化
tomtwinkle
2
430
朝日新聞のデジタル版を支えるGoバックエンド ー価値ある情報をいち早く確実にお届けするために
junkiishida
1
370
Claude Codeセッション現状確認 2026福岡 / fukuoka-aicoding-00-beacon
monochromegane
4
390
TROCCOで実現するkintone+BigQueryによるオペレーション改善
ssxota
0
140
Rails Girls Tokyo 18th GMO Pepabo Sponsor Talk
yutokyokutyo
0
200
Windows on Ryzen and I
seosoft
0
130
Featured
See All Featured
First, design no harm
axbom
PRO
2
1.1k
Why You Should Never Use an ORM
jnunemaker
PRO
61
9.8k
How Software Deployment tools have changed in the past 20 years
geshan
0
32k
Build your cross-platform service in a week with App Engine
jlugia
234
18k
Embracing the Ebb and Flow
colly
88
5k
The Art of Programming - Codeland 2020
erikaheidi
57
14k
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
61
52k
Java REST API Framework Comparison - PWX 2021
mraible
34
9.2k
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4k
Crafting Experiences
bethany
1
78
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
130
[SF Ruby Conf 2025] Rails X
palkan
2
810
Transcript
GraphQLについての5分間 @mqtsuo02 February 28, 2018
@mqtsuo02 ( Matsuo Obu ) Webエンジニア ( フリーランス ) 現在
… もっぱらReact 過去 … Ruby, Java 未来 … Angular, Go 仮想通貨投資 DTM ( ボカロP ) ダンスの習い事 勉強会主催
GraphQL知ってる方いますか?
もくじ ➢ GraphQLとは? ➢ RESTとの違い ➢ APIを叩いてみよう ➢ 所感
GraphQLとは?
GraphQLとは? ➢ Facebookが作ったAPIのインタフェース仕様 http://graphql.org/
GraphQLとは? ➢ OSSとしてGraphQLを導入するための ライブラリが提供されている - C# / .NET - Go
- Java / Android - JavaScript - Swift / Objective-C iOS - Python - C# / .NET - Clojure - Elixir - Erlang - Go - Groovy - Java - JavaScript - PHP - Python - Scala - Ruby Client側 Server側 ➔ ReactはRelay という専用ライブラリがある
GitHubの開発者用ページではGraphQLが主流っぽくなってる https://developer.github.com/ ➢ GitHubがGraphQLでAPIを実装したことが話題に GraphQLとは? API v4 がGraphQL ( API
v3 がREST )
RESTとの違い
• 「リソースの完全なビューを集約するために、2〜3回の別々のリクエ ストが必要になることがありました。私たちのレスポンスは同時に多く のデータを送信し、利用者が必要とするデータは含まれていなかった ようです。」 「RESTは完全でなく、いくつかの欠点があります」 RESTとの違い GraphQLでAPIを実装した背景 ( githubengineering.comより
) • APIの改善要求 エンドポイントに関するメタ情報収集、ページネーションの改善、リク エストパラメータの型安全化、コードからドキュメントの自動生成な ど...
RESTとの違い GraphQLはAPIのためのクエリ言語でありランタイム ➔ RESTでは ... ➔ GraphQLでは ... • リソース毎に複数のエンドポイントに対してリクエストを送る
• サーバは設計したフォーマットを返すように実装する • 1つのエンドポイントに対して必要な情報をクエリとして定義する • サーバはクエリに応じて動的なレスポンスを返す ★ 必要な情報だけを1回のリクエストでまとめて取得できる
RESTとの違い GraphQLはAPIのためのクエリ言語でありランタイム ➢ スキーマを定義しといて ➢ 予測したデータが返る ➢ クエリを投げれば
APIを叩いてみよう
APIを叩いてみよう GitHubアカウントがあればすぐ使える https://developer.github.com/v4/explorer/
APIを叩いてみよう GitHubアカウントがあればすぐ使える https://developer.github.com/v4/explorer/ ドキュメント見ながらクエリ作り ➢ queryは取得系 ➢ mutationは更新系
所感
• API設計に対するフロントvsバックの争いが少なくなる のではないかと思う 所感 • 導入事例がまだ少ないため、案件に導入するにはリス クが高いなと思う • フロントもバックも両方実装が必要であるため、チーム でやる場合は全体でキャッチアップが必要
★ Facebook信者は何も考えず導入しよう!
参考リンク ➢ GraqhQL 公式 ➢ GitHub Engineering ( GraqhQL 導入について
) ➢ GitHub Developer ( GraphQL API ) https://githubengineering.com/the-github-graphql-api/ http://graphql.org/ https://developer.github.com/v4/ ➢ GitHub Developer ( GraphQL API / クエリ検証 ) https://developer.github.com/v4/explorer
ありがとうございました