SlideShare una empresa de Scribd logo
1 de 117
Leveraging the
GitHub GraphQL API
@bdougieYO
@bdougieYOsandwich.netlify.com
@bdougieYO
GraphQLa query language for APIs and a
runtime for fulfilling those queries
with your existing data
@bdougieYO
@bdougieYO
Grand Master Flash
& The Furious Five @bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
End of Disco - July
1979 @bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
Disco is not Dead
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
Game changing by
sampling @bdougieYO
Through the Wire
@bdougieYO
Through the Fire
@bdougieYO
apple-bottom-jeans.netlify.com
Give it a REST
@bdougieYO
Does GraphQL
kill REST?
sandwich.netlify.com @bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
Developer AdvocateTools
@bdougieYO
GitHub v4 API
@bdougieYOsandwich.netlify.com
@bdougieYO
@bdougieYOsandwich.netlify.com
@bdougieYO
Podcast where I first learned about GraphQL at GitHub@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYOsandwich.netlify.com
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
Monolithic
Architecture
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
ClientAPI
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
The JAM Architecture
/user
/repositories
/notifications
@bdougieYOsandwich.netlify.com
@bdougieYO
REST endpoints
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
GitHub
API
/user
@bdougieYO
My App
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
GitHub
API
My App
/repositories
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
GitHub
API
My App
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
GitHub
API
My App
/notifications
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
GitHub
API
My App
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
GitHub
API
My App
Go Fish?
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
Gucci Mane samples “Lovin’ You”
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
/user
/repositories
/user/notifications
@bdougieYOsandwich.netlify.com
@bdougieYO
REST endpoints
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
lost in docs
@bdougieYOsandwich.netlify.com
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
How is GraphQL different
from the REST?
@bdougieYOsandwich.netlify.com
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYOsandwich.netlify.com
@bdougieYO
GraphQLlets you replace multiple REST
requests with a single call to
fetch the data you specify
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
GitHub
API
My App
@bdougieYO
/graphql
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
GitHub
API
My App
@bdougieYOsandwich.netlify.com
@bdougieYO
GraphQLnot a replacement for REST,
but alternative for querying data
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
ClientAPI
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
GraphQL
Interactions
@bdougieYOsandwich.netlify.com
@bdougieYO
Query & Mutation
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYOsandwich.netlify.com
@bdougieYO
define the shape of the data
you want and you get it
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
GraphQL
Query
apple-bottom-jeans.netlify.com @bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
Mutation
apple-bottom-jeans.netlify.com @bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYOsandwich.netlify.com
@bdougieYO
How do I get started with
the GraphQL API?
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYOsandwich.netlify.com
@bdougieYO
GraphQL Explorer@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
developer.github.com/v4/explorer/
Query
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
developer.github.com/v4/explorer/
Data
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
Now a live
Demo 😅
@bdougieYOsandwich.netlify.com
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
I wanted to try this new
GraphQL API by building
a new project
@bdougieYOsandwich.netlify.com
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
GitHub is the place to
discover open source
@bdougieYOsandwich.netlify.com
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
I want to get involved in
Open Source
@bdougieYOsandwich.netlify.com
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
but every-time I find a project
I don't know where to start
@bdougieYOsandwich.netlify.com
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
~Gucci Mane
If you don’t got sauce, then
you lost
@bdougieYOsandwich.netlify.com
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
an open source project to
manage open source projects
@bdougieYOsandwich.netlify.com
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYOOpen Sauced @bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
a way to save and take notes
on projects to rediscover later
@bdougieYOsandwich.netlify.com
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
GitHub
V4 API
Open
Sauced
Graph.cool
Fetching repo data
Fetching saved notes
Saving notes
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
use GitHub as a
platform
@bdougieYOsandwich.netlify.com
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
GitHub + GraphQL =
Open Sauced
@bdougieYOsandwich.netlify.com
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
Fetching Data
@bdougieYOsandwich.netlify.com
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
GitHub
V4 API
Open
Sauced
Graph.cool
Fetching repo data
Fetching saved notes
Saving notes on
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYOFetching Repo Data @bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
GraphQL !== JavaScript
@bdougieYOsandwich.netlify.com
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
Fetching Repo Data
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
GitHub GraphQL Endpoint
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
GraphQL repoQuery
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
repoQuery
the exact shape
from the
GitHub explorer
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
repoQuery
the exact shape
from the
GitHub explorer
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
Documentation
@bdougieYOsandwich.netlify.com
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
Explorer is not just a playground
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
You can source documentation here too
Documentation
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
No more fishing through
GitHub’s API documentation@bdougieYOsandwich.netlify.com
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
Pagination on
Edges
@bdougieYOsandwich.netlify.com
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
[Issue]
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYOsandwich.netlify.com
@bdougieYO
Documentation
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYOsandwich.netlify.com
@bdougieYO
Documentation
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
Node Limit
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
Fetching Issues
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
Limit is 100 records
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
Issues
apple-bottom-jeans.netlify.com @bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
Ordering and Filter
happens in the Query
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
Filter by only open issues
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
Order by latest issue
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
Paginated Issues
apple-bottom-jeans.netlify.com @bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
Paginating Issue Data
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
Alias edges to data
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
All edge content has a cursor
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
Offsetting edge content with cursor
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
Mutations
@bdougieYOsandwich.netlify.com
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYOsandwich.netlify.com
@bdougieYO
Mutate GitHub API
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYOsandwich.netlify.com
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYOsandwich.netlify.com
@bdougieYO
Documentation
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYOsandwich.netlify.com
@bdougieYO
Documentation
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
Saving Data
@bdougieYOsandwich.netlify.com
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
GitHub
V4 API
Open
Sauced
Graph.cool
Fetching repo data
Fetching saved notes
Saving notes on
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
Apollo
apple-bottom-jeans.netlify.com @bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
networkInterface
apple-bottom-jeans.netlify.com @bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
ApolloProvider
apple-bottom-jeans.netlify.com @bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
updateRepository
apple-bottom-jeans.netlify.com @bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
Saving Notes
apple-bottom-jeans.netlify.com
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
Saving Note Mutation
apple-bottom-jeans.netlify.com @bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
Saving Note Creation
apple-bottom-jeans.netlify.com @bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
Does GraphQL
kill REST?
sandwich.netlify.com @bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
What is missing in the
GraphQL API
@bdougieYO
The GitHub V4 API is
constantly getting new data
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
platform.github.community
sandwich.netlify.com
@bdougieYO
Other GraphQL
resources
@bdougieYOsandwich.netlify.com
Prisma is the new Graph.cool
@bdougieYO
@bdougieYOsandwich.netlify.com
@bdougieYO
npm install -g prisma
prisma init hello-world
@bdougieYO
@bdougieYOsandwich.netlify.com
@bdougieYO
GraphQL CLI
@bdougieYO
@bdougieYOsandwich.netlify.com
@bdougieYO@bdougieYO
howtographql.com
@bdougieYOsandwich.netlify.com
@bdougieYO@bdougieYO
GraphQL Playground
sandwich.netlify.com
@bdougieYO@bdougieYO
Apollo Launchpad
@bdougieYOsandwich.netlify.com
@bdougieYO@bdougieYO
bdougie/open-sauced
REST is not Dead
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
Sample GraphQL
today by using
your GitHub data
@bdougieYOsandwich.netlify.com
@bdougieYO@bdougieYO
@bdougieYO
bdougie/open-sauced
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
opensauced.pizza
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
developer.github.com
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
developer.github.com/program
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
What is missing in the
GraphQL API
@bdougieYO
don’t get lost.
stay saucy
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO
@bdougieYO

Más contenido relacionado

Más de 🌯 Brian Douglas

Más de 🌯 Brian Douglas (6)

Integrating continuous integration and deployment with GitHub’s API
Integrating continuous integration and deployment with GitHub’s APIIntegrating continuous integration and deployment with GitHub’s API
Integrating continuous integration and deployment with GitHub’s API
 
Activating developers to drive your advocacy programs
Activating developers to drive your advocacy programs Activating developers to drive your advocacy programs
Activating developers to drive your advocacy programs
 
Optimizing developer onboarding
Optimizing developer onboardingOptimizing developer onboarding
Optimizing developer onboarding
 
Saving with serverless functions
Saving with serverless functionsSaving with serverless functions
Saving with serverless functions
 
Developing your brand as a developer
Developing your brand as a developerDeveloping your brand as a developer
Developing your brand as a developer
 
Give it a REST: Intro to GraphQL
Give it a REST: Intro to GraphQLGive it a REST: Intro to GraphQL
Give it a REST: Intro to GraphQL
 

Último

redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
nicho110
 

Último (12)

Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptx
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXI
 

Leveraging GitHub GraphQL API

Notas del editor

  1. Getting into open source projects can be a daunting process, and there are a lot of existing tools out there to assist in getting your first open source pull request including Code Triage, IssueHub, and of course firstpr.me. Open Sauced is one more tool to help by providing a platform to organize notes on potential projects the user has not yet contributed to by leveraging the now public GitHub GraphQL API. This talk will compare the GraphQL benefits over REST and walk through the implementation of live code implementing the open source GraphQL features using the Apollo project.
  2. I recently watch a Netflix Original series called the Get Down But whats interesting is this takes place in the late 70s when Disco was still king and Hip wasn’t a thing. Which portrays kids from the Bronx trying to put the best Hip Hop crew. What I am getting at is things were changing for the better
  3. 1979 July - Disco Demolition Night .98 cents
  4. 1979 July - Disco Demolition Night .98 cents
  5. I recently watch a Netflix Original series called the Get Down But whats interesting is this takes place in the late 70s when Disco was still king and Hip wasn’t a thing. Which portrays kids from the Bronx trying to put the best Hip Hop crew. What I am getting at is things were changing for the better
  6. 1979 July - Disco Demolition Night .98 cents
  7. same hospital that biggie smalls died in 2003
  8. survived disco star chakah khan’s 1985 hit
  9. show ing me shape the data
  10. the rap start sensation
  11. 1979 July - Disco Demolition Night .98 cents
  12. Finally I am hiring — friends, feel free to holla @bdougieYO, just bdougie on github need a story arc need an arc for notes example how faster hot reloading/ painful in simulator android, I am not going to details, less apologetic “thats outside the scope” ORM for a local SQL database