Liz Johnson

Camp Counselor

Why You’re API Needs a Spec and How to Get It One

Event Logo

Tuesday, July 30, 2024 - 6:00 PM UTC, for 1 hour.

Regular, 60 minute presentation

Room: African 20

Ruby
Rails
GraphQL
JSON:API
APIs

Abstract: API specifications like GraphQL and JSON:API were created so that clients such as an internal frontend or mobile application can have a standardized and robust way to get the data they need. APIs that are built to conform to a spec have a schema and the patterns for interacting already established before any endpoints are written. This way, developers have established patterns and schemas to follow on both the client and server side which can equip teams to build faster than in situations where this is not true. While implementing APIs to specs or migrating APIs to specs requires more work upfront, I’ve seen APIs that conform to specs like GraphQL and JSON:API scale quickly in terms of technical features. They also helped the project scale from 10 devs working quickly and effectively to 40 devs working effectively in a matter of weeks. Whether you are part of a team building a new API or you are working in an established one you will come away from this talk feeling empowered and equipped to make that API better. You will understand why migrating to or building with a spec is worth the time as well as hear practical implementation strategies. Finally, you will see examples of the technical details so you can easily start working towards more scalable solutions! Intended Audience: The goal of this talk is to target two groups of people. The first is any group that has the opportunity to greenfield an API. Even though it will be more work upfront to build a JSON:API or GraphQL compliant schema the work will pay off. The second group is those who already feel the pain of an API that was implemented to no specific standard. I want them to feel empowered to move towards one of these standards by showing them how each one works, and talking about how and when you could begin migrating to either GraphQL or JSON:API.

Prerequisites

Experience interacting with and API as a client or building APIs for a client.

Take Aways

  • Feel more comfortable implementing an API to conform to a specification
  • Have tools to convince your teammates that it's worth it
  • A starting point to implementation will help your team build in ways to scale faster!
  • The patterns you learn can help future engineers have a great developer experience
favorited by:
Jacob Netz Danger Casey Jason Von Ruden Daniel Maley Shaq Mughal Ken Samson Nick Heidke Carlos "El Guapo" Porras Rodriguez Craig Jeffords Natalie Kay Caleb Autry Matthew Ives Nerando Johnson Brian Robertson Adam Miller Brandt Hofer Ross Larson Elizabeth Groom Joshua Doro William Schaeffer Sam Patterson James McCollum Spenser Austin Kyle Schroeder Tim Kempster Chris Weinert Jacob Graf Drew Nys Shashi Lo Jason Cairol Tadd Eells Will Boyer Jonathan Renier-Wigg Justin Weyenberg John Martin Kevin Curtis Ryan Holmes Micah Silverman Chris Nowicki Brett Allenstein Benjamin Gavin Hannah Reuss Paul Ross Jordan Bleu Edward Lichtman Michael Duren