With hundreds of applications across the UW–Madison campus needing to interact with each other as efficiently as possible, the Interoperability Initiative is currently underway with an RFP for API management. APIs serve as the groundwork for developers and integrators that want to interact with the business functions of the university in an automated way. While the outcome of the RFP has yet to be determined, let’s take a step back and discuss APIs and their benefits.
API stands for Application Programming Interface. Applications expose APIs so that other applications can interact with them in an automated way. Some applications at UW–Madison already use and expose APIs for integrations. For example, Course Search & Enroll uses APIs exposed by SIS to register students for classes. For this article and in the context of interoperability, when we discuss APIs, we are referring to the ones that operate over the web using HTTP (Hypertext Transfer Protocol).
APIs are a desirable means of integration between applications for several reasons:
- Simplification: APIs abstract many of the complexities of an application. This allows someone who isn’t an expert in the application to integrate with it by using its API. For example, consider the internal complexities in SIS required to register a student for a class. By allowing this functionality to be exposed in an API, other applications can achieve the same outcome without needing to know how SIS operates internally. To use an analogy, think of the accelerator pedal in a car. The accelerator simplifies the complexities of the car so that the driver doesn’t have to know how the car works to achieve the goal of going faster or slower. In this way, the accelerator is the interface.
- Reusability: An API is exposed by an application and defines how other applications should interact with it in an automated/programmatic way. One way that APIs enable reusability is by allowing an application to expose one API so that several other applications can interact with it. The application exposing the API doesn’t need to provide customized APIs for every application that wants to interact with it. Another way that APIs enable reusability is by allowing applications to build on top of the functionality of other applications. For example, Uber uses an API exposed by Google Maps for mapping, an API exposed by Stripe for payments, and an API exposed by Twilio for messaging drivers. The Uber app built on top of that existing functionality so that it could provide a new set of capabilities. Course Search & Enroll is another example, as it did not need to recreate a student information system to be able to allow students to browse and register for classes. Instead, it built on top of an existing application, SIS, by using its APIs. In addition to enabling integration, APIs serve as the building blocks for applications.
- Abstraction: By using a common, standard protocol such as HTTP, applications can use APIs to interact without needing to know what systems are behind the scenes. An application might use an Oracle database, be deployed on a Windows server, or run in the cloud. These details are not visible to other applications through an API. This also gives applications the flexibility to change without needing other applications to change with it. As long as an application is still exposing the same API, it can change how it functions internally without affecting other applications that interact with it. In this way, APIs help applications interact with each other while being loosely coupled.
- Real-time: A common trait of an API is that it is synchronous—meaning, an application sends a request to an API and then waits until it gets a response. The response usually indicates that the request was successful, but the API could also respond with an error message that prompts the application—or end-user—to correct their request and try again. Through synchronous interaction, APIs allow applications to communicate in real-time to get the most up-to-date information or to perform a certain action. The value of most APIs depends on real-time communication. For example, consider a travel booking website. Most travel websites interact with airline companies using their APIs. These APIs must be able to perform actions in real-time, otherwise available airplane seats and the act of booking tickets would always be outdated. As a result, the poor user experience would make the travel website unusable. APIs enable real-time integration and user experience.
APIs help a wide range of distributed applications interact with each other efficiently and enable application developers and system integrators to build integrations. Both of these are key elements to achieving the end goals of the Interoperability Initiative. API management can help people discover, use, and create APIs. We will discuss this further as well as provide updates on the API management RFP results in a future post.
To stay informed as the initiative progress picks up, visit the interop website and join our update mailing list.
—Interoperability Initiative Team