There are many factors that set the tone for developing software applications, but none more than APIs. APIs (Application Programming Interface) literally handles all input, operations and underlying types of an application. Needless to say, that’s a substantial responsibility, but API are up to the challenge. Is it any wonder that developers have taken up an API-centric focus when developing? But what exactly is API driven development? Let’s take a look at some
Simply stated, API driven development involves development where API is the central component. In other words, all development revolves around the API and how it aids in the development process. Essentially, you build an API and then build an application on top of it. And given that APIs provide the building blocks for applications, it makes sense.
Think in terms of breaking things up into API-centric services. This includes separating (modularizing) the front-end and the back-end of an application. This allows things to be separated into smaller entities that will end up making up the whole application when combined. Furthermore, the division aids in alleviating overly complicated features and functionality. Once things are split up, you can go ahead and start coding each section via an API-centric manner. And thanks to the API, there’s always a communication bridge between the pieces.
Why use API driven development? There are definite advantages that should be considered.
For one, there’s the ability to spec out features that much more easily. In other words, you can determine all the requirements for the application. This will also aid in determining the scope of an application. Knowing the scope of the project will aid in the overall development process.
There’s also freedom from having to make systematic rebuilds every year. Let’s say there are features and functionalities that have been/will be depreciated. Due to the separation of API services, it’s possible to simply remove the deprecations. Another option is to use API Versioning. This allows you to create a new version of the application (one without the deprecations) and remove the old application.
In addition, there’s a general feeling of being able to program in any number of ways so long as you have the API and basic documentation. This is especially true given that you use universal languages like REST, JSON and XML to create an application.
Moreover, there’s documentation of everything since it’s pretty much impossible to work with APIs without documentation.
While use of API driven development is beneficial, there are some factors that should be taken into consideration. They include:
It’s easy to write a badly designed API, so take your time, thoughtful plan things out and stay consistent. Choose the API carefully.
There can be availablity issues as the application is dependent on the availability of the API, especially if there are runtime dependencies. This also includes the use of external servers. If the server is down, then application functionality becomes an issue.
API provides a well defined schema for testing, but if the tests are sloppy or there are no tests at all, it will prove detrimental to the application.
Be carefully with how many APIs and platforms you use. If there are too many, it could come back to haunt you later on.
As with most things, the ultimate choice to use API driven development or not comes down to what works the best for you. Consider the benefits as well as possible detriments and proceed from there. Still, given the value and the fact that API are integral to development, API driven Development is definitely something to look into, especially when it comes to web and mobile development.