How would you explain what an API is to your mom?
If you work for a tech company, you hear the term "API" thrown around quite a lot. But perhaps you don't understand what it means because you work in marketing. Welcome to my world. But I'm always curious to learn more about how our products work, from the inside. Fortunately, the tech experts in our Brooklyn office are very friendly, and have a sense of humor.
Last week I sat down with David Christian Liedle, our very own Technical Product Manager, so I could learn more about what exactly an API is and discover why it's one of the sexiest words in technology.
David Liedle presenting the blogger of the year award at eZ Conference 2016 awards ceremony, October 5th, 2016.
As the Technical Product Manager of eZ Systems, David Christian Liedle is responsible for defining market requirements of eZ software and packaging these requirements into product releases. His position involves close interaction with the eZ engineering team and our key customers. He is active at community events and served as a moderator and panelist at eZ Conference 2016.
Henry: Pretend I'm your mom. How would you explain what an API is?
David: Well, I'd start by finishing off a third helping of her famous Chile Rellano Casserolle. But seriously, why would my mom care about APIs?
Henry: She's a tech-savvy mom with an iPhone and she uses Facebook. She hears about APIs a lot, Mark Zuckerberg talks about them in his keynotes. But she likes things explained in a simple way. Whenever she tries to find an answer online, the explanation can get very complicated.
David: Clearly you've never met my mother… But I'll indulge the idea.
"Mom, an API is basically an agreement between myself and the software that we're going to exchange information using set standards, so I don't have to understand the insides of the software I'm interacting with. API stands for Application Programming Interface; it's an interface that allows me to connect with the application I want to use when I'm programming. It lets me interact with all the hard work provided by the developers that made software that I want to use, to get information and cause things to happen in the ways they've provided for me."
Henry: Are there different kinds of APIs or are they all the same?
David: APIs come in all shapes and sizes. Programmers use them when writing native applications for Mac, Windows, and Linux machines. They use them when building apps for mobile devices, programming games, and developing websites. As a developer, I make an API when I want other developers to be able to use the code that I've written in a structured manner. I then, in turn, use the APIs other developers have exposed for me to do likewise. If you've ever made a coupon book ("Good for one hug" or "I'll wash the dishes for you") for a friend or loved one, you've made something similar. There's an understanding between developers that certain actions will be performed, and certain information may be moved or manipulated, when making a "call" to an API. You don't really have to know all the details to understand the intended outcome. The APIs that are interesting to developers are the ones that enable them to tap in to the code or data they want to work with. If you're writing PHP, you're interested in the Public PHP API. If you're reaching across a network to fetch content or perform a task, you're interested in the REST API. If you're working with JavaScript to connect to a headless CMS like eZ Platform, the JavaScript Client API is what you work with. Each API serves its own purpose, and exposes different functionality and information depending on its scope and intended usage.
Henry: I hear the term REST API thrown out a lot here at eZ. What's so special about it?
David: Although REST sounds peaceful--relaxing even--it actually stands for Representational State Transfer. Amusingly, the passive nature of this approach is also actually peaceful and relaxing. You hear the term a lot because REST has become THE best way for applications to communicate across the Internet and on the cloud, and it's a key strength of eZ's content management platform to enable serving all kind of applications on all kind of channels and devices. REST has progressively replaced other ways of communicating, at least in terms of popularity. If you have been in our industry for a while, you might have heard about SOAP or even CORBA, which were way more complex. Those were other standards for applications to communicate through the Internet, but they were much more work and way less peaceful! In eZ, almost everything can be done via REST. The REST approached simplified things big time.
Henry: As a marketer, I often hear that REST API are very useful. How come?
David: Oh certainly! Remember that an API is something a developer uses to interface with other systems. Marketers should be interested in the *power* of an API, whereas developers are interested in the "functionality". Services like MailChimp, SalesForce, Slack and others make their functionality available to developers via their REST APIs. We don't "download" Slack's software and build on top of it; we reach out across the Internet and "call" their API and get back a response letting us know how things turned out. If your team wants to build a solution that can play well in that world, eZ Platform puts that power into the hands of any team, by providing a REST API that lets you (and others) interact with your content across the internet. If you're old enough to remember life before text messages, you know how much easier it is in the modern world to have the ability to exchange info at the click of a button now. That's a great example of how it feels to be a developer with access to a REST API. We can fire off messages and get replies without having to worry about how it works underneath. What we care about is the exchange of information, and the resulting outcomes.
eZ Platform relies on an architecture with clean APIs and clear separation between different application layers. This makes learning, using and maintaining the platform easier. Developers get a flexible Content Management System to support large scale enterprise projects. Marketers get the benefit of being able to simply integrate their content with other applications ( to read or write content), while asking much less from their developers.
Henry: This might be technical, but do you see APIs progressing in some way, perhaps built in a way that is easier for developers to get the data they need?
David: That's a great question! We've been talking a lot here at eZ about how we can provide a better Developer eXperience by reducing the number of API calls required to gather all the data needed to get things done. I like the example of a coupon book. If I gave my mom a coupon book with coupons redeemable for hugs or chores, it would stay pretty simple. If I tried to write coupons that combine huge blocks of activity ("This coupon good for a trip to the grocery store followed by stopping at the gas station to fill up the tank and get a car wash and then over to the hardware store to grab a propane tank for the BBQ…"), it would get complicated fast. Finding a balance between simple and powerful can be challenging, and that's exactly the conversation we're having in the industry.
Henry: Any closing thoughts?
David: So, are we going to talk about your mom now?
Henry: Sure, right after I explain APIs to her!
eZ Platform is now Ibexa DXP
Ibexa DXP was announced in October 2020. It replaces the eZ Platform brand name, but behind the scenes it is an evolution of the technology. Read the Ibexa DXP v3.2 announcement blog post to learn all about our new product family: Ibexa Content, Ibexa Experience and Ibexa Commerce