API First Integration for the Cloud
Cloud technologies are rapidly gaining momentum. Initially, lower storage cost and quick access to environments for development were features that motivated organizations to use the Cloud. Today, Cloud has features for virtually every role of technology within three different models – IaaS (Infrastructure as a Service), PaaS (Platform as a Service) and SaaS (Software as a Service). A key aspect of interacting with any of these Cloud services is the use of APIs (Application Programming Interfaces).
What is an API?
APIs predate the internet and have been a good practice for software development since the birth of the computer. An Interface makes features of programs available to consumers of the program. A well-defined interface protects consumers from changes in the program and provides clear details on its usage, responses, and faults during execution.
Today, the term API refers primarily to an open or public interface that is accessible over the internet. API, Web API and REST API are all synonymous. Internet-based applications primarily use one of two protocols, either SOAP or REST. Both SOAP and REST web-based services are essentially APIs but as mentioned, the term API, though truly a broad term, has taken on a specific meaning that primarily refers to interfaces that use the REST protocol. The details of these are beyond the scope of this article, but REST will be briefly discussed as it is essential to understanding API.
REST stands for Representational State Transfer. Essentially, REST is based on the same protocol, HTTP, as used in web pages. HTTP has a limited set of verbs and is lightweight and very broadly used, making it well suited for API as well.
A web-based API then uses the same syntax as other web access because of the shared reliance on HTTP. This example shows a URL to Google, on the Search Page with a search parameter that queries for the term “great lakes”. Note that though the URL shown would be acceptable for an API, there is normally a slightly different format used; however, the concept is relevant regardless. Whether called from a browser or a snippet of code, the URL reacts the same way. The consumer (consumer here referring to other applications that call an API), employing either a web browser or code, doesn’t know if the URL is a static link or an application.
In the previous example, the request was made using the HTTP verb GET. APIs can also interact with other verbs such as POST, PUT, DELETE. These verbs have special meaning on how an API works. For example, POST is usually used to add a new item, PUT is used to update and DELETE is used to remove. APIs provide the “interface” for these interactions and they define the inputs, outputs and errors. When a POST is used, for example, the API may require certain payload in the request that would contain the details of the elements to be used to add a new item. An example of this could be an API that adds a new customer to an e-commerce platform and expects customer information such as name, address, etc. It may then respond not only with a success or failure code, but perhaps a customer ID.
Why API matters for SaaS
Although SaaS applications provide user interfaces much of their functionality, efficiencies can be gained through automation and integration with other enterprise applications, whether SaaS or on-premise. SaaS applications often need to interact with other applications within an enterprise. Consider Salesforce, a CRM (Customer Relationship Management) SaaS application. Salesforce could be used as part of a quote scenario that needs to update the quote information into an Order Management System or another business process.
APIs provide a common interface for any consumer to interact. To reiterate, consumers are other applications that call an API – a web browser, a mobile application on a smartphone, another application that exposes business process functionality. APIs provide a standard means for third-party developers to conveniently interact with the SaaS modules, extending the functionality and value of the SaaS component.
To express this further, consider the wide variety of applications that you can download on your mobile phone. Most of these will leverage APIs. Many of these don’t necessarily follow the concept of Enterprise SaaS such as ERP, but the concept is the same whether using a Salesforce application or Dropbox.
What are some of the top reasons for developing APIs to access your Cloud or SaaS-based application?
1. Extending Functionality
Consider a hotel check-in application. Whether the interface is a browser, a mobile application or a reservation system, it utilizes API across its functionality. An example is a mobile application. As a customer checks-in, there may be a feature to look up directions which calls the Google maps API or a callout to verify payment through a Payment API. The developer of the hotel application is a consumer of multiple APIs in this case, increasing the functionality of the hotel’s core application.
2. Encourages Innovation
APIs can not only be called by other consumers, through developer portals, but they can also be enhanced into APIs with additional features contained and then leveraged by other consumers. Let’s look at another use case. Let’s assume a banking organization creates an API to find the nearest ATM. That API leverages a location API, again perhaps Google Maps or something similar. Consumers of the ATM API may build a variety of applications for users to find the nearest ATM or even gather statistics on how ATMs are used, what are the most popular, etc.
3. More Possibilities
I already mentioned Google APIs for location and maps previously. The Google search engine collaborated with more than 100 APIs to establish authority over other businesses of the industry. In fact, Google was the first brand to have an open API.
When using Google to search product catalogs, an API can be used to capture the product information and place it into an ecommerce site’s shopping cart, for example. The API2Cart offers an open API that allows access to more than 30 shopping carts simultaneously. Using such an API-based SaaS tool, the vendors were able to enhance their functionality and open up more options for the consumers.
APIs are flexible and rapidly becoming the standard for integrating with SaaS. Whether building a SaaS application, extending a SaaS application’s functionality or being a consumer of SaaS, it’s important to understand the role of APIs. When creating an API, it is key to consider the consumers and develop a common interface that is well documented and available for developers to use, extend and provide feedback on. The idea of API First serves to describe that all consumer interfaces should be designed with the consideration that consumer will interact via an API. Before implementing all functionality, designing the API with the considerations on input and output for the consumer, and allowing the consumer to test features while the implementation is being done, improves the effectiveness of an API.
In upcoming articles, I will further discuss API design, some of the tools available, security considerations and overall lifecycle management of APIs.
The following thoughts, intentions, strategies and/or solutions are those of the blog authors and do not represent the position of anyone other than the authors.