APIs are a compelling business strategy
API means Application Programming Interface. It is the equivalent of a graphical user interface (GUI) for programmers. Users interact with a program using a GUI, and programmers interact using an API. An API can be something simple, such as a logging mechanism, or it can be complex, and provide even more functionality than a GUI.
An API can allow customers, suppliers and third parties to build their own products and service on top of your own. The value to a third party is to avoid recreating the functionality of the base product or service within their own system, but focus on providing value-added functionality.
Therefore, we can assume that if your product or service can be consumed by third parties via an API, you are building a competitive advantage. If your competitors already provide APIs, then you may struggle to obtain wider adoption if you do not follow suit. Often, companies with the best APIs can charge a premium for their services, which can be a revenue generating exercise in its own right.
An example of an API creating a new market
Within weeks of the original Lego Mindstorm debut, Kekao Proudfoot reverse engineered the RCX brick (hardware) and posted his findings online. Other engineers then used his findings to create Mindstorm tools, including an operating system and a C-like programming language. Lego had the ability to stop them but instead decided to let this community flourish. 'We came to understand that this is a great way to make the product more exciting,' Lego’s Nipper said - From Geeks in Toyland By Brendan I. Koerner - Wired Magazine February 2006.
In the case of Lego Mindstorm, a software API was created by third parties to interact with the hardware. The result was tremendous growth in that market because the product target audience was no longer only children. A large portion of people who bought Lego Mindstorm after the API was created were adults who were looking for a low cost entry into robotics.
Therefore, APIs promote consumer loyalty and can help create new markets for existing products and services
An API can also be used to extend the life of legacy systems. By creating an API in front of a legacy system, existing functionality can be exposed by the API in a standardised way. All third parties interacting with the API have no knowledge of what is behind the end point they are accessing. They simply see a standardised interface. This not only ensures a better return on existing investment, but allows the legacy system to be replaced in a more controlled manner, as the API exposed to third parties will not change when the switch over is made, it only needs to be re-configured to send data to the new system.
This API topology diagram describes where the API is positioned, in between the end users and the application
When designing and building an API, we consider the following
- An API is a user interface for a developer, it must be simple and easy to understand
- An API is only as good as its documentation. We created tools to auto generate documentation and provide testing tools based on the API code structure. Developers have access to a sandbox to try sample requests
- RESTful URLs should be used to define actions. Resources are manipulated using HTTP requests (GET, POST, PUT, PATCH, DELETE). By adopting standards it ensures consumers of the API can make certain assumptions, which saves time
- SSL encryption should be used everywhere, with no exceptions
- Parameters which support advanced filtering, sorting and searching
- Configuration options to limit which fields are returned from the API
- Always return meaningful data as a response from POST, PUT and PATCH requests
- JSON should be used where possible, XML only if there is a strict requirement
- Provide an option to autoload related resource representations
- Provide useful response headers for rate limiting
- Use token based authentication, transported over OAuth2 where delegation is needed
- Include response headers that facilitate caching
- Define a consumable error payload
- Effectively use HTTP status codes
API development experts
We have a long and successful history developing and supporting enterprise APIs and applications written in a variety of languages. We offer expertise in creating, extending and supporting APIs to meet any requirement.
If you're looking for a turnkey API solution, or need us to analyse and make recommendations about existing APIs, get in touch.