When it comes to development time, API first approach will take more time to build a product. With the intention to get the product faster to the market, every entrepreneur ask them-self the question in the title of this blog.Even though answer is know to be YES in the corner of our mind, there is a natural curiosity to understand more about it before convincing our-self.
I have gone through this stage of flickering mind and have found convincing answers and explanations. This blog discuss about being API from day one and making our own product a client of that API.
Let’s split the question in two and discuss them separately.
Should I build a API early ?
With the decrease in mobile device cost and internet, most business find their customer engaging more with mobile apps than desktop sites.With this shift, it is clear that business need API from day one. However not all products needs to be over mobile – at-least at the beginning . Even with this scenario , I would suggest to go API first. Private API have proved to have ROI and value addition for business.
The other side of the fact is – when business starts building API from day one, they start thinking of their long term vision from the same day. This helps the company to grow. They treat API as their business platform by building extensibility from within to support different audience who would join in future.
Having a API will increase a opportunity to partner with few 3rd party early. This would be much better than having none. In fact the business relationship with the third party improves as business grows in future. API can act as a path way to achieve that.
When 3 letter word API is for discussion on the table, instantly OAuth – which is a security for API comes to picture. However when company has a private API , basic credentials like user identity and password is just enough.Complete implementation of OAuth isn’t needed.
Should I make product client of that API ?
May be or may not be. It’s a trade off. It would be perfect if the company build their product as a client of that API. However there are cases where additional overhead is associated with it. Is such case company can use API to maximum extent and do minimal direct database operations. There are few scenarios where business itself are not sure if the feature would work for them. In such case direct database operation would be better choice.
On the other side, when company uses it’s own API for it’s product; they are actually testing their API in real time. Most for the improvements and recommendations comes when development team uses what they built for others. Hence by the time business starts partnering API or making API public, they have done with the testing for usability and bugs.