Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Persited GraphQL

Persited GraphQL

The move to GraphQL marked a more substantial shift in GitHub's Platform strategy towards more transparency and more flexibility in our API. Over the past few years, GitHub has been enabling developers to build on our platform as 3rd party integrators. This enablement does not come without limitation in rate-limiting and token access. Join me in walking through some of the ways I am leveraging Persisted GraphQL queries to create a smaller signature and reduce bandwidth utilization on the client loading times.

Persisted queries are especially nice paired with GET requests, enabling the browser cache and integration with a CDN.

Brian Douglas

August 14, 2020
Tweet

More Decks by Brian Douglas

Other Decks in Technology

Transcript

  1. 1. “How do I implement auth?” 2. “How do I

    cache my result?” 3. “How do I make my server efficient?” 4. “How do I implement rate limiting?” @bdougieYO sandwich.netlify.com @bdougieYO
  2. Imagine walking in the diner and saying, “I’ll have the

    usual". @bdougieYO sandwich.netlify.com @bdougieYO
  3. bdougie.live needs auth’d access to cached data from the GitHub

    API @bdougieYO sandwich.netlify.com @bdougieYO
  4. the GraphQL API provides opportunity to define interactions based on

    solutions and not endpoints sandwich.netlify.com @bdougieYO @bdougieYO @bdougieYO @bdougieYO
  5. I wanted to try this new GraphQL API by building

    a new project @bdougieYO sandwich.netlify.com @bdougieYO @bdougieYO @bdougieYO @bdougieYO @bdougieYO
  6. allow integrators the flexibility to request specific access to resources

    and act as a first class actor without taking up a paid seat within an organization. @bdougieYO sandwich.netlify.com @bdougieYO @bdougieYO @bdougieYO @bdougieYO @bdougieYO GitHub Apps
  7. The first issue is solved, but a new issue is

    created. No access to public GitHub Data sandwich.netlify.com @bdougieYO @bdougieYO @bdougieYO @bdougieYO