I hear this phrase used more and more lately, “An API First Strategy”. It is something you hear from startups like printing API LOB, to established players like Pearson, all the way up to 18F at the GSA in Washington DC, but what is API first? Much like APIs in general, an API first strategy is something that will mean something different to each company, organization, government agency, or individual.
From my view, the most common interpretation of API first will be:
- Develop an API First - Before you build your website, web, mobile or single page application you develop an API first, then you get to work on defining the channels you will be making the API resources available on.
I had an interesting conversation today with the 18F team in Washington DC, and they illuminated some other possible dimensions to the API first conversation for me, that I wanted to explore a little:
- Design Your API First - Using tools like Apiary, and API definition formats like API Blueprint, you kick off discussion with customers, generate user stories, and mockup your API, and even your web or mobile app interfaces, using your mock API.
- API First In Open Source Software - Encouraging the development and use of open source software solutions similar to Wordpress, that have API by default, so when agencies deploy them, they always have an API as part of their first steps for making access and integration decision—something that can drastically shift what is possible.
My goal is to help small business, non-profit organizations, and government of all shapes and sizes understand the benefits of an API first strategy, so having conversation with API leaders like 18F, and getting their view on what API first means is essential to my storytelling process. How do you view API first at your company? How has your development lifecycle evolved since embracing APIs? Let me know, I’m curious to hear other views on the phrase.
All three of the dimensions laid out above are very appealing to me. I am big advocate for "API first being" about API design, open source software architectural patterns, or just a way of life before you consider connecting any web, mobile, or single page app to a back-end system. To me, API is more about conversation, collaboration, and access to ideas and resources, before we even get to any technical definition of what an API can be—making API first strategies more about philosophy and methodology, rather than what technical component you develop first.