A Guide to API-First Design Posted in Design J Simpson June 23, 2021 We are living in an API-centric world — it’s how we interact with that data. Gartner claimed we live in the API economy back in 2016, and since then, the world’s only become more data-driven. APIs are no longer just an extension of an existing tool or website. Instead, APIs have become products in their own right — APIs are often created independently of other digital tools or resources. This is known as API-first design, and it’s becoming more and more prevalent. We’ve put together a guide on API-first design to help you get up to speed on this emerging development trend. What Is API-First Design? API-first design is both straightforward while also having profound implications, especially from an implementation standpoint. API-first design is simply where a developer creates an API and then creates other digital tools and resources around it. Some examples of API-first design include: Creating an API before a website Creating an API before an app Creating an API before integrating with a system Creating an API before syncing with a database Adopting an API-first design approach can bring benefits for developers and business owners alike. Developer Joyce Lin describes some of the benefits in the Better Practices blog: “By introducing new features as an independent service accessed by API, the rest of the app can be stitched together, along with any other future apps.” Considering how much we depend on our apps and websites to be scalable and how detrimental service outages can be for digital tools, it makes sense that we’d emphasize this approach. Let’s take a look at some of the other benefits of API-first design. Benefits of API-First Design Teams adopt an API-first design because it fits an agile framework. Other reasons are more technical and specific to the developers who are creating the APIs. No matter what level of familiarity you have with APIs, there are many reasons you should consider an API-first design approach to your project. Faster Development Time This is one argument for an API-first design that’s similar to any other collaborative framework like agile. An API-first design means the developers are thinking about every stage of an API rather than just endlessly tacking on endpoints. APIs are also modular and often reusable, so once your API begins to come together, you can use it in other API-centric projects. Better UX/DX Downtime is never a good thing. Broken client apps can be absolutely devastating when data is the product or service. It wouldn’t take too many service interruptions for your customers to seek out more reliable services. By building with APIs, you can create a consistent model for any type of client to consume, thus benefiting stability. Also, by integrating APIs into your project, you reap the UX benefits that APIs offer, like social logins or app integration. API-first design makes for a better developer experience, as well, considering that developers are the main clients who will be working with and consuming the APIs. API-first design facilitates clean, well-written, and thoroughly documented APIs, making it much faster and easier to onboard developers so they can get started using the API. More Adoption Taking an API-first design approach means that it’s easier for your developers to add new features and functionality. This is key for getting developers to use your API in their development projects which is, of course, key to an API’s success. Consider when Walgreens opened their API to developers, making it possible for customers to print photos from their phones or social media accounts. This instantly laid the groundwork for their digital customers to spend 6x as much as in-store. In a time when so many are trying to find a balance between the digital and the physical, we simply can’t ignore stats like that! Self-Descriptive For an API to be truly useful, it needs to be as self-explanatory as possible. That’s one of the central tenets of an API. It’s also key to API adoption, as your customers aren’t going to want to have to open the help documentation anytime they want to consume your API. We’ve mentioned a lot about that first hyphenated phrase, ‘api-first’, but one final benefit of this approach is API design. It encourages you to pause for a moment and reflect on your product and what you’re hoping to achieve. It can be a way to get your entire development team working together and on the same page, as well. One way you might go about implementing an API-first design is to bring together the frontend and backend development teams and have them work together on designing the API. Simplifies Data One of the most common reasons for developing an API is to consume and interact with data. At the risk of making an overgeneralization, many business owners aren’t particularly interested in the mathematical wonders that data can conceal. For the most part, business people are concerned with business problems. As the developer, you’re there to solve their problem. An API simplifies the way that consumers interact with data. For example, think about what a raw, unprocessed JSON file from the command line can look like. The returned file can sometimes be hundreds of pages long. This data dump can sometimes seem intimidating to those who are less comfortable with technology. Tips for API-First Design API-first design is more of a framework for how you approach API-centric development, similar to AGILE or Scrum. With that in mind, here are some tips for you to keep in mind during your API-first design journey. Decide On Your Objectives Here’s the stage when all of your teams come together to decide what you’re hoping for your API to achieve. Everyone in your organization who will be interacting with the API should have a part in this conversation, from the business side as well as the tech side that will be creating the API. Understand Your Enterprise’s Infrastructure To create a useful, effective API, you need to know the system you’re working with. You’ll need to be familiar with the backend to know how to integrate with your databases, for instance. You’ll also need to fully understand any digital presence you might have, like your website, to figure out where people will be accessing your API. Identify Integrations One of the principal reasons for adopting an API-first design strategy is to make your API scalable. You never know what the future has in store, especially in these tumultuous times. During the API-first design process, it’s important to determine all the different components that your API will interact with. You’ll also need to consider what your API might interact with in the future. Thinking about these things ahead of time will help ensure your API is ready for anything. Not all of the assets you’ll be interacting with will be REST, or even RESTful, for example. Knowing that ahead of time means you can create your API to be open-ended and flexible. Understand Different Types of APIs APIs in an enterprise largely fall under three main categories. According to InfoQ, there are edge APIs, utility APIs, and domain APIs. Edge APIs are an integral component of the frontend. They’ll be interacted with the most, as a result. It’s a good idea to design the edge APIs first to avoid unnecessary complications once you start developing the backend. Edge APIs are often built over the frontend layer, performing necessary functions like rate-limiting or user authentication while offering a consistent experience for the user. Once the edge APIs are created, you can start developing the utility and domain APIs. Utility APIs are APIs that can connect your backend APIs with other solutions. However, this isn’t always necessary as more developed APIs will have many of these functions built into them. Finally, domain APIs are the infrastructure used by your office. These can be functions like messaging services or business analytics. Following an API-first design makes it so that you can always go back and tweak the edge APIs as needed if you encounter any problems when setting up the domain or utility APIs. Building API-First APIs are becoming increasingly important for businesses that want to stay relevant in the digital age. This means they must be understandable to those who are less tech-savvy and the developers who will be creating them. This is going to create a scenario we might call API 2.0, which will likely be similar to when coding went mainstream. Think of the explosion of new tools and toys that flooded the market when slick IDEs came out. We’re likely going to see something similar with APIs as they become more integrated into how we do business. So it’s essential that we become comfortable with API-first design to stay ahead of the curve!