Why You’re API Needs a Spec and How to Get It One
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