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
GitHub GraphQL API
Search
Brooks Swinnerton
September 13, 2016
Technology
160
4
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
GitHub GraphQL API
Brooks Swinnerton
September 13, 2016
More Decks by Brooks Swinnerton
See All by Brooks Swinnerton
Building GitHub Integrations with Webhooks and REST
bswinnerton
1
190
Launching GitHub's GraphQL API
bswinnerton
4
530
Optimizing APIs for Consumers with GraphQL
bswinnerton
2
460
Launching GitHub's Public GraphQL API
bswinnerton
2
590
GraphQL for Rubyists
bswinnerton
0
320
The Road To Code: Ruby
bswinnerton
0
120
The history of Vim
bswinnerton
0
160
Other Decks in Technology
See All in Technology
エンドユーザー視点で見る SansanのMeraki活用と内製自動化
sansantech
PRO
0
110
Sets in Go
ramalho
1
980
カートの信頼性を担保するWireMockを使ったe2eテスト
ykagano
0
390
SmartHR Engineering Team Deck
smarthr
1
2.5k
My broken English still works: speaking at global OSS events
naruoga
0
110
Go 1.27 の標準パッケージに uuid が入った!のでいろいろ喋る / go_127_std_go_uuid
convto
1
240
Eight Engineering Unit 紹介資料
sansan33
PRO
3
8.2k
Digitization部 紹介資料
sansan33
PRO
2
7.7k
Bits AI を制するものは Datadog を制す / The player that controls Bits AI, controls Datadog
kaminashi
0
120
Invisible to AI? Making TYPO3 Sites Quotable by AI Search Systems
wolfgangwagner
0
220
【CEDEC2026】コードレビュー支援ツール開発から学ぶ:LLMを用いた業務システムの実践的な運用設計と誤出力対策
cygames
PRO
0
850
AIコーディングの次。コードレビューと理解負荷を解消して組織の開発生産性を高める
moongift
PRO
2
2.6k
Featured
See All Featured
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1.2k
Designing for Performance
lara
611
70k
Prompt Engineering for Job Search
mfonobong
0
410
Color Theory Basics | Prateek | Gurzu
gurzu
0
420
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4.1k
How to build a perfect <img>
jonoalderson
1
5.9k
Embracing the Ebb and Flow
colly
88
5.1k
Bash Introduction
62gerente
615
220k
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
1
700
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
5
1.2k
Fashionably flexible responsive web design (full day workshop)
malarkey
408
67k
Code Reviewing Like a Champion
maltzj
528
40k
Transcript
GitHub GraphQL API Brooks Swinnerton
Hi, I’m Brooks
I work at !
Today I want to talk about our API
March 11, 2008
April 8, 2011
today’s REST API
is endpoint driven
is verb driven
None
/repos/:owner/:name/projects ʦʒʒʪ verb ʦʒʒʒʒʒʒʒʒʒʒʒʒʒʒʒʒʒʒʒʒʒʪ endpoint GET
[ { "owner_url": "https://api.github.com/repos/bswinnerton/weekend-project", "url": "https://api.github.com/repos/bswinnerton/weekend-project/projects/1", "id": 166, "name": "The
Website", "body": "The main website powering my weekend hack project.", "number": 1, "creator": { "login": "bswinnerton", "id": 934497, "avatar_url": "https://avatars2.githubusercontent.com/u/934497?v=3", "gravatar_id": "", "url": "https://api.github.com/users/bswinnerton", "html_url": "https://github.com/bswinnerton", "followers_url": "https://api.github.com/users/bswinnerton/followers", "following_url": "https://api.github.com/users/bswinnerton/following{/ other_user}", "gists_url": "https://api.github.com/users/bswinnerton/gists{/gist_id}", "starred_url": "https://api.github.com/users/bswinnerton/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/bswinnerton/subscriptions", "organizations_url": "https://api.github.com/users/bswinnerton/orgs", "repos_url": "https://api.github.com/users/bswinnerton/repos", "events_url": "https://api.github.com/users/bswinnerton/events{/privacy}", "received_events_url": "https://api.github.com/users/bswinnerton/ received_events", "type": "User", "site_admin": true }, "created_at": "2016-09-13T05:25:42Z", "updated_at": "2016-09-13T05:36:56Z" } ]
/repos/:owner/:name/projects/:number/columns ʦʒʒʪ verb ʦʒʒʒʒʒʒʒʒʒʒʒʒʒʒʒʒʒʒʒʒʒʒʒʒʒʒʒʒʒʪ endpoint GET
[ { "project_url": "https://api.github.com/repos/bswinnerton/weekend-project/projects/1", "id": 522, "name": "Up Next", "created_at":
"2016-09-13T05:25:48Z", "updated_at": "2016-09-13T05:31:05Z" }, { "project_url": "https://api.github.com/repos/bswinnerton/weekend-project/projects/1", "id": 523, "name": "In Flight", "created_at": "2016-09-13T05:25:52Z", "updated_at": "2016-09-13T05:34:30Z" }, { "project_url": "https://api.github.com/repos/bswinnerton/weekend-project/projects/1", "id": 524, "name": "Awaiting Review", "created_at": "2016-09-13T05:26:01Z", "updated_at": "2016-09-13T05:36:56Z" }, { "project_url": "https://api.github.com/repos/bswinnerton/weekend-project/projects/1", "id": 525, "name": "Done", "created_at": "2016-09-13T05:26:05Z", "updated_at": "2016-09-13T05:35:39Z" } ]
/repos/:owner/:name/projects/columns/:id/cards ʦʒʒʪ verb ʦʒʒʒʒʒʒʒʒʒʒʒʒʒʒʒʒʒʒʒʒʒʒʒʒʒʒʒʒʒʪ endpoint GET
[ { "column_url": "https://api.github.com/repos/bswinnerton/weekend-project/projects/ columns/525", "id": 2408, "note": null, "created_at":
"2016-09-13T05:34:27Z", "updated_at": "2016-09-13T05:34:27Z", "content_url": "https://api.github.com/repos/bswinnerton/weekend-project/issues/2" }, { "column_url": "https://api.github.com/repos/bswinnerton/weekend-project/projects/ columns/525", "id": 2410, "note": "Find cofounders", "created_at": "2016-09-13T05:35:09Z", "updated_at": "2016-09-13T05:35:09Z" }, { "column_url": "https://api.github.com/repos/bswinnerton/weekend-project/projects/ columns/525", "id": 2409, "note": "Buy domain name", "created_at": "2016-09-13T05:34:43Z", "updated_at": "2016-09-13T05:34:43Z" }, { "column_url": "https://api.github.com/repos/bswinnerton/weekend-project/projects/ columns/525", "id": 2402, "note": "Set up Slack", "created_at": "2016-09-13T05:26:20Z", "updated_at": "2016-09-13T05:26:20Z" } ]
this can be painful
each request counts against a rate limit
data you don’t need
which brings us to tomorrow
September 14, 2016
built on GraphQL
what is GraphQL?
a query language
created by Facebook
query { viewer { name } }
query { viewer { name } } { "data": {
"viewer": { "name": "Brooks" } } }
it’s introspectable
it’s typed
let’s take it for a spin
!
why GraphQL?
you get the data you need
in one request
you get the data you need
when new UI features are released
we use GraphQL in production
early access
we want your feedback
which schemas do you need?
where can we offer better tooling?
what’s confusing about the GraphQL API?
Learn more Check out tomorrow’s talk: Updating our Platform to
help integrators ship http://githubengineering.com https://developer.github.com https://platform.github.community
https://developer.github.com
https://platform.github.community
Come find us
Q&A
FIN