Understanding API: Part 1

If you use the Internet, you’ve used an API. API technology surrounds you. But knowing that this technology is making all kinds of communication possible is different from understanding API coding.

Today I’m going to clarify some of this technology and the history behind it. Then, in part 2 of this series we’ll look closely at how Lulu utilizes API and cloud computing to make print-on-demand more versatile, flexible, and affordable.

What is an API?

The acronym stands for Application Programming Interface (API). The API offers a clear and concise communication methodology for software, encompassing three main functions:

  1. Defining elements
  2. Setting communication rules
  3. Providing software building-blocks

Defining API without using highly technical terms and phrases is a lot of work. And getting someone who really, deeply understands this programming in a simplified way is a challenge. Breaking it down into the three functions an API fulfills makes this task marginally easier, so let’s cover those first.

Defining Elements

In programming, everything is an ‘element.’ From the text on the web page to the images, to the embedded video to the comment thread. Each piece is an element. If you’ve used a drag and drop site platform like WordPress or Wix, you’ve experienced working with Elements.

What an API does is define individual elements and their roles in a universal manner. Doing so creates a consistent and easy to replicate style—making it easy to display varied information across different browsers and website experiences. Elements are the basic pieces any website will build from; the API defines how these elements will look, interact, and react.

Setting Communication Rules

Much like defining the Elements, an API will define the rules software use to communicate. Imagine trying using MS Word to write an entire book, then converting all the text to WingDings before printing your book. You’d have a book in a nearly indecipherable language.

An API ensures that all elements are using the same communication format. You can rest assured that your website or software will work properly across a variety of browsers.

Providing Software Building-Blocks

Finally, we need the elements we’ll build software from. By connecting different elements, an API creates the basic ‘building-blocks’ developers use to make new software. And because those building-blocks used standardized elements, the new software avoids a range of possible communication issues.

Okay, so we’ve got the ability to connect elements, ensure communication between elements, and build out unique elements. The easiest way I’ve found to understand what an API is and how it works is to think of it as a template. Just like the kind of template you might use when creating a book interior with predefined header and footer space, fonts, text specifications, and page size; the API is a template for web and software development that ensures uniformity.

Lego crowd - looking pretty uniform!

When Uniformity Is Good

Structures enable innovation and original design. It’s often challenging to appreciate how important an established structure is to creating something new. This is particularly relevant for web-based creators—without holding to the standards your content may not render or function properly on the variety of browsers and operating systems in use today.

In the modern World Wide Web, APIs critically facilitate secure transfers of data and information between servers. All of the websites in use today exist on a server somewhere. When you type in a URL or click a link you’re telling your browser to request information from that site’s server. Communication is simple and organized through a consistent and predictable method.

API History

Most sources point to Library Systems from the 1960s as the first application of API technology. Despite these uses, the modern web API is largely credited to Ray Fieldings and his 2000 dissertation, Architectural Styles and Designs of Network-Based Software Architectures.

“The complexity of modern software systems have necessitated a greater emphasis on componentized systems, where the implementation is partitioned into independent components that communicate to perform a desired task.” – Ray Fieldings

Fieldings identifies the key implementation of API technologies for the modern web, but these designs have been widely and thorough used for years prior. In the 1960s and 1970s, computer engineers began to utilize Distributed Computing to achieve more complex tasks. Individual systems, assigned discrete tasks, work together to achieve complex goals .

Distributed computing led to application based computing in the 1980s, whereby various systems were organized into multi-faceted applications, which in turn could be organized into ‘objects.’ Known as Object Oriented Programming, the idea evolved alongside distributed computing, but took a more firm hold with programming languages like C++ in the 1980s.

Note that both of these programming languages were using the essential elements of an API.

Then, in the 1990s, things really took a leap forward with the introduction of the World Wide Web and web browsers. Things like Hypertext Markup Language (HTML), Hypertext Transfer Protocol Secure (HTTPS), and Javascript enabled secure communication via the web. These connections were the predecessors of the current web API infrastructure of the web.

Breaking It Down

Alright, I got a little more technical than I had hoped in the previous section. Let me backup a step and break this down a little.

So, in the early days of software development, programs were given tasks and computed answers. Then some geniuses realized more complex tasks could be achieved by having each computer do a piece of the larger task. But in order to achieve a coherent answer from all those discrete systems, the computers had to talk to each other in a simple manner.

Once developers understood how to ensure communication between systems, they started developing programming languages so the system they created could be used and modified by another developer’s system. This collaborative structure is a fundamental element of the Internet!

Today we have tools like WordPress or Wix; website development tools with a variety of widgets and elements that can be added to a page or a post. Along with the native elements of a website building tool are the massive libraries of third party plugins. Uniform programing language makes this possible.

At the most basic, WordPress is a very user friendly API (yes, that’s an oversimplification, indulge me). The WP interface is a dashboard meant to pull together and connect a variety of tools, widgets, elements, and plugins. You can create a unique and useful webpage, website, blog, or whatever you want to create!

Enabling Development in a Connected World

Cables and connections

I hope I’ve helped make plain the basic concepts of Application Program Interfaces. There are far more technical and in-depth takes on this subject, for anyone interest here’s a couple I recommend:

But now I want to transition us to thinking about how we use API connections here at Lulu. One of the earliest connections we facilitated involves online buying and selling, what most now call ecommerce.

Despite many of our best efforts, the trend of adding an “e” to anything that can now be done online or using a device doesn’t seem to be fading. C’est la Vie.

What is Ecommerce?

Online transactions, generally managed by specialized software companies, Ecommerce is a catchall term of online buying and selling. It’s a transaction without money physically changing hands.

Think about ecommerce in light of the information about APIs we now have. A website links you to a shopping cart page with added security, you enter your payment info, and the site connects to your payment method (credit card, PayPal, etc.) and the funds move. API connections make this possible!

Online shopping is largely possible because of APIs. All the products and services you can purchase online require connections between a web page, a shopping cart, an ecommerce engine, and fulfillment (the software that tells someone in a warehouse to pack up your product or a printer to create the book you ordered).

Lulu, Technology, and You

The historical version of Lulu, circa 2005, had two main goals: To help you publish your book and to act as an ecommerce business with our online store. We are a connection—bringing authors with content into contact with readers, and funnelling that connection through a print-on-demand and fulfillment service.

In the second part of this series, we’ll look at how Lulu has evolved, and the bigger picture of technological evolution in the publishing industry — Understanding API: Part 2

1 thought on “Understanding API: Part 1”

  1. Pingback: Lulu at London Book Fair 2019 |

Join the Conversation