Build Product using API-First Approach
Web APIs have been around for nearly 20 years, but it is only in the past few years that the concept of “API first” has gained traction with software companies.
In 2002, Jeff Bezos sent and internal memo to Amazon engineering teams. It went something along these lines:
- All teams will henceforth expose their data and functionality through service interfaces.
- Teams must communicate with each other through these interfaces.
- There will be no other form of interprocess communication allowed: no direct linking, no direct reads of another team’s data store, no shared-memory model, no back-doors whatsoever. The only communication allowed is via service interface calls over the network.
- It doesn’t matter what technology is used. HTTP, Corba, Pubsub, custom protocols — doesn’t matter.
- All service interfaces, without exception, must be designed from the ground up to be externalizable. That is to say, the team must plan and design to be able to expose the interface to developers in the outside world. No exceptions.
- Anyone who doesn’t do this will be fired.
This memo initiated the transformation of Amazon to an API-First Company. Almost 20 years later, Amazon is now an Internet powerhouse that is offering more than 175 APIs for solving common business problems.
What is API-First approach?
API first approach means that API must be treated as 1st class citizen. All functionalities of your product must be first exposed through an API, then you build applications around your API.
As exemple, you can think about Netflix. You can consume Netflix movies thought different application running on your phone, TV, computer or tablet. The core business of Netflix, which is about streaming and managing movie catalog is built once and available via APIs, then you have different applications that leverage the APIs to distribute movies on the various devices.
Advantage for API-First Products
Development in parallel
One important aspect of API-First development is the notion of contract. Contract help developers to understand:
- The operation performed by the API
- The data to exchange with the API
Once the contract is established, developers can start building customer features while backend developers build the actual API. Developers do not have to wait for updates to an API to implement their features. Teams can mock APIs and test API dependencies based on the established API definition.
Reduce development cost
When you want to develop a new app, you do not have to start from scratch, which is time consuming and costly. Just focus on building the customer experience for your new app, while leveraging the APIs and re-use existing core functionalities.
Accelerate Time to Market
The reusability of core functionalities from the API help developing application quickly, thereby go to market faster. You can develop an application within weeks, instead of months or year.
Externalization of your features
If you build an API to solve your business problems, why not offer it to others to solve their problem? Amazon built a cloud based infrastructure to power their e-Commerce, then externalized it to other business via their APIs. In 2020, 13% of Amazon revenues come from it's Cloud infrastructure and 30% of companies on the Cloud are on Amazon.
If you start building your next product:
- Start with your API
- Leverage other API to accelerate your development time.