APIs: Changing The Way How Data Gets Integrated
“Information wants to be free” Stewart Brand, the American writer and tech visionary, once told Steve Wozniak. It is a simple fact of life for anyone managing data. It’s too easy to move data from one place to another, too simple to connect to a useful API, that we frequently spend a lot of time and money locking up our data to keep it safe and secure. That’s because, in the less-repeated first sentence of Brand’s maxim, “Information wants to be expensive.”
What he’s referring to, in reality, is the value of information. As the amount of data we store and manage explodes exponentially, the value of any given piece of data is massively expanded by integrating it with all of the data it is related to.
How can we expose and exploit that value? More importantly, how do we add context and allow others to add context in perhaps unexpected ways? Our primary method of doing that is through Application Programming Interfaces (APIs).
Every time you open a shopping app on your phone and buy a shirt with PayPal, you’re seeing the power of an API at work
What is an API? It’s a building block that can be used by programmers to assemble a more complex program, but it’s often used as shorthand for Web API, which is a way for two computers to talk to each other in a structured way over the Internet. A traditional, monolithic application built in a single language and code base is like a state-run economy: all important decisions are made from the top and enforced at all levels. It may seem faster at first, but the top-down approach makes the system less adaptable. An API based architecture is more like a capitalistic economy: many empowered entities are making their own decisions and working together to solve smaller problems and communicate the solution to others. Behind the interface of an API, businesses have autonomy to make the decisions that maximize usefulness and performance of the solution in that small domain.
APIs are widely used in the applications that power our lives: Every time you open a shopping app on your phone and buy a shirt with PayPal, you’re seeing the power of an API at work: companies all over the world mix their retail sites with the PayPal API in order to deliver a more secure way to pay. The companies benefit because that modular payment building block easily plugs into their system and solves a challenging problem. When an app developer harnesses the Federal Election Commission’s new API and a GovTrack API to make a website that shows voters if their representatives were funded by a certain special interest group, they’re using the reusable building blocks built by FEC and GovTrack to save the time and money, enabling new innovations.
These examples demonstrate that powerful new way for machines and businesses to organize: the API economy. In the API economy, companies invest the time necessary to make sure their data is reusable across a wider ecosystem. Each of those organizations gain benefit individually while also contributing to a broader ecosystem. GSA saw this first hand when, in partnership with the Department of Education, they released the College Scorecard, a tool which publishes return on investment data for all colleges that accept federal dollars. GSA provided a simple tool for navigating the data, but also released the API that powers the tool and in doing so allowed the public to build different user interfaces that approach the data from different perspectives. Today there are at least 16 different sites that use College Scorecard data to fuel experiences, such as sites specifically catering to answering questions from first generation college students or sites that are optimized to help low income students find grants.
Building complex software through reusable building blocks is good practice. APIs that are core to your business or service should be open to the world, with the right controls. Those controls will let you regulate and monitor the service: for example, preventing a single user from overtaxing the database or allowing you to charge for the service. Once those APIs are exposed, the power of network effects, data mash-ups, and new user experiences can be fully realized both by your own organization and others. We’ve seen how simple APIs can change who bids for government contracts by making it easier to find information about available opportunities from FedBizOpps, a contract search API; this means more innovation in government just by making specific data available.
The goal of an API is to do one thing well, and to work well with others. But it’s hard to design software that stays flexible enough to work well with others, some ground rules need to be established. Just as we have an established currency and corporate law to establish ground rules for how businesses relate to one another, we also need API governance. Good API management will mean defining common terms, standards of interactions, and setting security protocols, amongst other key activities. Just like businesses in the real economy, APIs need marketing: ways to make them addressable and discoverable to your user base. Making interactions with your APIs difficult means fewer users and less impact. Defined standards like HAL or “true” REST provide design guideposts to avoid this.
One of the principal benefits building complex system through API building blocks is that it makes it possible to evolve the system over time. For example, an API that queries geographical data might be improved by using a new mapping database. In a traditional, monolithic application, it would be difficult to adopt the new technology without affecting other aspects of the application, but if the functionality is encapsulated behind an API, it makes it possible to upgrade that aspect alone without impacting consumers of the API. It’s still feasible to do post-operational analysis against singular data stores that collect multiple data sets together, but transactional performance and operations can be maintained in place but through an “API facade”. If your business then forces all integrations to go through that API instead of direct database calls, modernizing the data and implementation behind that facade is a far simpler proposition than full-scale replacements. There are pitfalls here: an API will be slower than direct database access, and may be more difficult to debug than a monolithic app, but there are also opportunities that can improve your applications while minimizing disruption to operations.
APIs are changing how we integrate data by enabling data to be used in new contexts to create better used experiences and make better informed decisions. More so, by engaging in the API economy, a company’s data is no longer contained within a single organization, but part of a worldwide ecosystem.