Skip to main content

Building a Resilient API with Open Source

Wynn Netherland (GitHub)
Computational Thinking
Portland 255
Average rating: ****.
(4.00, 9 ratings)
Slides:   external link

Humans handle change better than machines do. Even fixing a bug to bring the API in line with documented behavior can have a big impact on integrators. For this reason, the API team at GitHub has developed an approach to managing change that seeks to minimize negative impact while maximizing performance and availability for all API consumers. A pragmatic approach to Hypermedia enables us to beta test new APIs, version resources independently, and even move around our asset upload infrastructure without breaking existing clients.

Managing change hinges on testing API behavior. We’ll demonstrate how we use tools like JSON, Rack::Test, and custom Minitest assertions to test the API end-to-end. Science, an open source project from GitHub, helps us measure impact for codepaths for which we don’t have as much code coverage as we’d like. Finally, we’ll look at how we collect metrics using Graphite and combine them with other sources to make informed decisions about API changes, knowing in many cases the exact third party applications we’ll likely impact.

In the session, we’ll cover:

  • How we beta test new APIs and API changes
  • How we measure usage and predict impact of changes
  • How we test the API and our API clients

Attendees will walk away with new approaches and tools for building a more robust API regardless of their platform.

Photo of Wynn Netherland

Wynn Netherland

GitHub

Wynn Netherland has been building the web for nearly twenty years. With a passion for API user experience, he’s a prolific creator and maintainer of Ruby API wrappers. He now spends his days hacking on the GitHub API and is author of several books, most recently Sass and Compass in Action (Manning 2013).