Monolith systems are dead and extinct as the software development world looks at the new dawn of cloud-native applications. The doomslaying technological meteors which led to the death of programming status quo dinosaurs or legacy paradigms of complex monolith systems are none other than ‘Rapidly evolving customer needs and new models of software delivery (SaaS)’. One methodology which has experienced an exponential evolutionary rise at this industry inflection point is Application Programming Interface or API. A new standard has been set and the whole market has shifted and morphed around it.
Every company is a software company nowdays and all companies want to embrace this cloud native approach for their application development. But what exactly does it mean to build apps ‘API first’.
It simply means that your API is the first interface of application. All of your ( I repeat all of your) product’s functionality needs to be exposed through the API and other interfaces are just secondary experiences. So you can leave that voice interface smart assistant version of development sprint for later. All of your potential apps — web, mobile, AR, voice are just consumers of your API.
So before working out those architectural acrobatics with your triple phd architectural astronauts, you should sit down with your team and spec out how the API will look like. You need to have a very distant line of sight to see through all the metamorphosis your product will undergo as you add functionality and refactor. Stability of the API is the key here, moving fast and breaking things is only for media hyped fascist tech billionaires and their monopolist social networks. So API first, implementation later. Keep your functionality additive in a graceful incremental manner.
And you don’t necessarily need a whole team in place to get things rolling because your contractual development obligation can be easily mocked by available tools. For example if someone wants to build a client to your API, just create an API blueprint and send your client app front end engineers a link to the collection , they can start building interfaces to consume your API and more so even execute requests by running a mock server. So much for LEAN development.
Another point to be kept in mind while you write your APIs is to keep them self descriptive so that you don’t have to deploy your slave armies of technical content writing Oompa-Loompas to conjure up some documentational treatise. So choose a naming convention for your API endpoints which doesn’t require Enigma machines to decipher and make sense of by developers.
We live in exciting times wherein with technologies like Docker, Kubernetes, APIs, Cloud as service etc we have come a long way in coming close to a true standardised cloud first approach to building apps without loosing our brain cells and also without getting vendor locked in by cloud providers like AWS or Google. So you better start working out a shiny new API first strategy because software is eating the world and APIs are eating the software. Meanwhile I’m gonna go and eat some of those last night’s leftover donuts.