By now, we all have heard the term API. API stands for Application Programming Interface, which is a system where input and output are transmitted from one application to external applications to share data. In most practical usage, we are used to the ideas of APIs extending the functionality of software products, such as making a connection between two different systems via an API connection.
This is not a new concept – APIs have been around for a long time. However, these days, they are more prevalent for those undergoing their own software development projects. The idea of the API is so essential that these days, many consider the formation of the API the first and most important consideration when planning a project. This concept is known as API-first – building the centerpiece of the project initially and then proceeding from there with the other “nodes” or applications that utilize the API.
Could this work for your project? Well, like anything else, it depends. All approaches to projects work well in some cases but maybe not in others. Let’s look at reasons why one would want to embrace this approach to completing a project.
You are building an application, not a website.
First things first – with just a few exceptions - informational websites generally do not need their own API. If you are building a marketing-driven site, or a site meant to convert users for lead generation or similar purposes, you do not need a custom API. The same applies to the most common use cases for e-commerce, blogs, publications, and similar. Sure, you could build those sites utilizing an API-driven approach – most commonly would be via a headless CMS system. But there is no need to develop an API to power those websites.
If you are building an application, whether it be for internal usage, licensing as a SaaS app, or any other piece of software with any relative complexity, an API is most likely the cornerstone of your project. Or at least these days, it is. Other frameworks served as a good foundation for these types of applications in the past. But now, front-end frameworks such as React, Vue.js, and Angular make for much stronger web-based applications. And the primary way these applications handle input and output with a server is via an API.
You have parallel development teams in place.
API development differs from front-end development, and typically also utilizes a different skillset. One of the distinct advantages of working API-first is that you can develop your project in multiple streams simultaneously. In the case of creating a web-based application, you can have a development team standing up an API to power an app when the application is still in the early stages of its own development or even undergoing UI/UX work. Having multiple teams approaching a project means quicker lifecycles, something almost every project owner is interested in.
You are going to have multi-channel offerings.
Perhaps the strongest argument for an API-first development methodology is the concept of future distribution of data to outside and/or multiple channels. Those building software applications often start first with a web application, but soon after that, mobile applications tend to follow. Those in media may be interested in building OTT devices for distributing content. And those with SaaS applications may be interested in sharing the data from their applications to third parties that can extend and/or enhance the user experience for their customers. But, more on that in a second.
Regardless of the reasoning, having an API built early is a distinct advantage that keeps your options open as you expand your offerings and is the quickest and easiest way to make a stable, demonstratable foundation early in the development cycle.
You are going to extend your service via an API offering.
Speaking of multi-channel distribution and offering customers additional services – an API itself is a product offering. Many customers who may utilize your services will require an API to make the best use of your products and have access to their data. Having a publicly-accessible API is a strong selling point for your company, although, in truth, people expect it these days either way.
You want quick proof-of-concept.
As I had alluded to above, building an API is a quick way to get demonstratable software in the hands of investors or others as you are developing your platform. APIs require no graphical UI/UX work. It is something a single developer can start without much fanfare. But the work the API does is crucial, critical to how an application works. APIs do the hard work of gathering, manipulating, and handling data. The brains of an application are the API and the databases behind it. Therefore, for those entrepreneurs spinning out new software offerings, showing a workable API early is a big show of value and, most importantly, careful and considered planning.
What makes a great API?
Assuming the above makes sense for you, what should you focus on while developing your API? Well, this is a post all to itself. But, a few core principles apply.
First, it is essential to choose a solid framework on which your API can be developed. There are many options here. Pretty much any development framework, whether it be Node.js or Laravel, could handle the task. Off-the-shelf services offer this capability, but we’d recommend using them for proof of concept and not for production-level services. After all, giving control of the centerpiece of your application to a third party isn’t preferred.
Secondly, a good API needs to focus on scalability and redundancy. This means a plan to ensure the API remains available at a high level to all users who need to utilize the service. If you use a third party, this means determining their capabilities for scaling. If you build yourself, determine a scaling strategy early in the development process. Either way, you want to be scalable and highly redundant to avoid downtime issues.
Finally, a good API needs documentation that is clear and comprehensive! If you are developing your application with multiple teams, it’s essential that the team building your application can access the API and understand it. For those making an API from scratch, libraries like Swagger excel in this area.
There are many benefits to an API-first method of software development. However, it is one of many possible methods and not a hard and fast rule, much like any other technique. It may or may not be the approach for you, your team, your company, or your product. If, however, the above scenarios make sense, it definitely should be considered a possibility when planning your development project.
If you are interested in discussing whether this approach may work for your project, reach out to us today for a free consultation.