We are in living in an increasingly API-centric world. APIs are everywhere you look – and you might not even realize it.
Need evidence? Gartner considers API management tools an essential component of the unrealized hybrid integration platform (HIP), currently an architectural approach to connect and integrate anything and everything with a digital pulse.
Forrester estimates that nearly 40 percent of US-based enterprises will implement a solution to handle the increasing management requirements surrounding the proliferation of APIs across the organization.
To some, the world of API integration is still a bit Wild West: massive expansion with little in the way of rules or enforcement.
To put this in perspective, ProgrammableWeb, a research website that focuses on the API economy, currently tracks more than 19,000 distinct APIs in its directory. A massive number that points toward both the versatility and the variation of this technology.
Currently, there are hundreds of APIs for finance, social messaging, payments, e-commerce, Bitcoin, and multiple other categories covering everything we do with applications as well as the things we program applications to do with other applications. Interestingly, the fastest-growing category of APIs over the past five years is for the sharing and analyzing of data across various applications – an area where the characteristics of the API determine the value of the application or deem it untenable for use in the real world.
So whether you’re pulling up an app like Expedia on your phone to book a flight to see a customer, connecting Slack to Google Drive, posting an Instagram pic to your brother’s Facebook page, you’re using an API that facilitates the sharing of data from one application to another.
Thus, the nuts and bolts of the largest category of APIs are that they connect applications together, allowing them to communicate with one another.
So, let’s take a deep dive into the world of APIs, shall we?
What is an API?
An application programming interface, or API, allows businesses to show the data and functionality of their applications to third-party developers, business partners, and departments within their organization. Through a documented interface, this allows separate applications and systems to communicate with one another and utilize one another's data and functionality. While API implementation can be very technical; developers simply use the interface to communicate with other products and services. API usage has skyrocketed in the last decade, which is why many of today's most popular web applications would be useless without APIs. There are three important elements pertaining to API:
Also referred to as routines, procedures refer to the specific tasks or functions a program performs. For example, Twitter provides a search API for developers to explore data for analytical purposes.
The protocol is the format used to communicate data between applications. This can get complicated, though. Applications may not rely on the same format. But, more on this later.
Think of tools as a set of building blocks – the components needed to construct new programs.
APIs are needed to bring applications together in order to perform a designed function built around sharing data and executing pre-defined processes.
They work as the middle man, allowing developers to build new programmatic interactions between the various applications people and businesses use on a daily basis.
Breaking down the API definition can help build a better understanding of just how this type of interface works.
These include the enterprise applications businesses rely on to send financial data, inventory levels, and purchase order information back and forth between suppliers, customers, and trading partners. Consumers and business users alike rely on mobile applications, spending 300 minutes per day on smartphone and tablet apps, according to California-based analytics firm Flurry.
Application creation relies on programming. The application programming interface is developer-centric. In other words, you can’t make a new application without developers, who write the code to create and design the application software and the interface.
The Interface is how software, not users, interacts with other applications.
Before going further into how APIs actually work, it’s important to understand the role they play in application development. In order to develop APIs, it’s critical that everyone involved has the same expectations. Developers must understand what is expected of them, as far as deliverables, from a timeline of when the project will be completed to the actual functionality of the API itself. It’s also essential to build endpoints within an API, which is basically a URL that performs a certain type of functionality. Endpoints provide fellow developers a path to follow that avoids confusion and guesswork, leading to a much smoother API development process.
3 Simple Components in a Great API
1. Multiple formats
Different applications speak different languages, including JSON, XML, and CSV.
This is a no-brainer. Without documentation, no one would know how to use the API. Documentation is the starting point toward making it DevOps friendly.
Developers want help… from other developers. In fact, many of the most widely adopted APIs are backed by robust developer communities.
How do APIs work?
Simply put, without APIs, you wouldn’t be able to order that birthday present for your mother on Wayfair.com, spin up a Linux server on the Amazon Elastic Compute Cloud, or personalize your Google homepage with gaming mini-applications or a photo collage. The easiest way to digest what an application programming interface does is to know that it is an interface that allows one application to communicate with another via commands designed by programmers.
Say it’s a Friday night, and all you want to do is fire up your Netflix and watch John Mulaney’s new standup special, Kid Gorgeous. And you’re also pretty hungry.
So, you pull up the GrubHub app on your phone and scan through your options. While not a publically documented API (more on that later), the web app gives you the ability to search a database of more than 10,000 restaurants. This is good, since you already had Chinese the other day, and tonight feels like a pizza night. Settling on your favorite local Italian joint, and taking a look through the recently updated menu (thanks API), you settle on a pepperoni pie with some mozzarella sticks on the side.
Now to process your order, you input your credit card information and enter the delivery address. This is where application-to-application communication comes into play.
At checkout, when you click “Submit Payment” in PayPal, the application sends your banking information to another application to verify your information. After confirming payment, the second application sends a notification back to PayPal to complete the transaction.
The PayPal API facilitates a financial data exchange, and once the acknowledgement is complete, your transaction gets processed, your order is verified, and the restaurant initiates a real-world operation – food preparation.
It works in business too.
Except, instead of ordering a hot pizza from a food delivery app, this type of multi-application communication might be initiated via your customer executing a command through a B2B e-commerce portal where an order kick starts a shipment of goods from a factory to a distribution center.
Subsequent to the transactional order data moving from application to application, it may be replicated to a big data storage program for analysis or sold as a value-added-service within a supply chain management ecosystem.
Needless to say, the data being shared across applications and company lines are the true lifeblood of modern business. And with some limitations in true B2B integration software capabilities, APIs are being expected more and more to convey that data.
Types of APIs
Now that you’ve gotten a better understanding of what an API stands for and what exactly an API is designed to do, it’s time to take a look at the different kinds of APIs that are available. While at their core, APIs do perform similar functions, they can also differ from one another in some slight ways.
REST APIs, also known as RESTful APIs, stands for Representational State Transfer. REST APIs have grown in popularity of late, as a part of Web Services. REST APIs are designed for developers to perform requests and receive responses via HTTP functions. There are four different HTTP commands that REST is based on. These include GET, PUT, POST, and DELETE. When you pull up Instagram and search for the latest and greatest meme of the day, that app is using a REST API.
SOAP stands for Simple Object Access Protocol. While REST is an architectural style, SOAP is a protocol that is defined by a standard. SOAP is dependent on XML-based systems and programming, tending to have larger, more expensive data. SOAP APIs also provide a higher level of security. A common use case is an application interacting with a financial institution.
RPC stands for Remote Procedure Call. RPC APIs were the earliest form of APIs, as they are designed to execute a block of code on a different server. When it is used over HTTP, it can become a Web API.
Difference between Public API and Private API
Public APIs are the most common examples when you think of what exactly an API is. These range from the common apps mentioned above to feature-rich examples that businesses are built on, including Amazon S3 to Magento. On the other hand, private APIs are internal applications designed for a specific audience and user base. It’s important to know the difference between the two, as each can be advantageous within an enterprise.
When you think about public APIs, the keyword to remember is open. Public APIs are designed to be shared with the outside world. YouTube is a popular example of a public API. External developers can build applications to take advantage of the capabilities within these APIs. It is important to note that some companies only provide semi-public access by not offering public documentation and allowing developers to submit their apps for approval.
Private APIs are often used within an enterprise to improve collaboration. While the API itself is also open as a public API, the difference is it is only open to those that have been granted access. Developers within an organization can take advantage of the functionality from the private API to design and build applications inside the company. Private APIs can leverage the existing functionality of enterprise applications so company employees can communicate more efficiently.
The Importance of APIs
With a focus on modern B2B usage, an application programming interface can be a critical component to integrating data flows with customers and partner systems. It can even add increased flexibility to traditional types of robust exchange such as managed file transfer (MFT) and EDI.
Exchanging documents as part of dynamic business transactions like purchase orders (PO), for instance, points to an evolution of the B2B e-commerce landscape.
From providing multiple industries with improvements in speed, agility, consistency, and accuracy, companies continue to recognize the potential of extending and integrating application data flows via APIs, allowing for smoother business process integration across applications in conjunction with other types of B2B technology.
APIs are integral to running a data-driven business nowadays. They allow the line of business users and IT to leverage software and applications to increase productivity and improve the bottom line. From social collaboration tools to more innovative approaches to customer outreach, taking advantage of APIs can prove dividends within the enterprise.
While the potential is undeniable, the efficacy of these tools is another matter.
A different way the API economy is described is “the connected era” – a better term because it doesn’t preclude other types of solutions. Ultimately, how well a business performs in the connected era – whether it succeeds or fails – is increasingly dependent on how well it connects applications and integrates the consequential data.