An API Is a Promise — Interacting With Valuable Capabilities

dandelion

What is an API? This is an interesting question that can be answered on many levels. There certainly is a technical side to it, then there is the perspective of looking at it as a way to interact with valuable capabilities, and you can also think of it as a way how developers design and use languages for those interactions. But here, we take a fresh perspective and make the claim that an API is a promise. An API is a promise in the form of a team publishing a language (the API definition) that allows other teams to get something done (by writing code that uses that API). Other teams will use that language to build on top of it, and because of that, the promise must have a number of properties:

  • It works. The API has a clearly stated purpose and value. By reading its definition and description, teams can understand it and start building on it.
  • It keeps working. There will be code depending on the API, which means that it is important that the API keeps working as promised so that the code using it will keep working.
  • It can improve. The promise can be evolved and improved by making it more elaborate, but you can never take away things that you have promised (and that consumers count on as a result).
  • It doesn't just stop. If you plan on not fulfilling your promise anymore, you have a way how to announce this and alert consumers, so that they can prepare for when the API stops working. This list of "how to manage your API promise" is (unsurprisingly) largely in line with good practices of API product management. One of the big value propositions of APIs is that by decoupling teams, you improve reusability, reuse, and velocity. The better your API promises are, the better this will work. Thinking about who is affected by your promises, it becomes evident that APIs span the whole range from being "just for machines", but on the other side of the spectrum also being behind all of the digitally powered or enhanced experiences that users are expecting today. Let's look at these layers of parties depending on API promises:
  • Machines. Being relatively simple, machines will blindly execute the API promise that a developer turned into code, and they will stop working when the API breaks its promise.
  • Developers. They are the ones understanding the promise and then turning it into code. Now your promise is engrained in a piece of technology that is potentially hard and expensive to change.
  • Designers. They are the ones taking promises and building new ones on top of them, ultimately building new applications and experiences for users. If the building blocks they build on are breaking, their design breaks and they have to go back to the drawing board how to come up with a new one.
  • Users. Delivering value to users is the ultimate goal of any API. Applications and experiences built on top of APIs will work more stable when API promises are being kept and can be more elaborate when designers can build on a solid foundation of building blocks. If you are interested in more details about this view of APIs as promises, the following video goes into more details. It is particularly interesting for everybody looking for an API perspective that goes beyond a pure technology focus and instead looks at why APIs are so essential for designing and delivering digital experiences today.

Monolith Modernization With APIs: What Is the Strangler Pattern?

the strangler pattern

Any organization that is not starting from scratch has existing IT systems and infrastructure in place. In many cases, this legacy has issues keeping up with today's demand for how quickly organizations need to be able to adapt and change. One common pattern in larger organizations is "monolithic applications" which often have been around for quite a while and are highly integrated and complex IT systems.

Since these monolithic systems tend to be calcified to a certain extent, they often reflect (and have been painstakingly optimized) the way an organization works currently, but they often also are hard to change when the organization wants or needs to make changes to what it does and how it does it. Microservices often are mentioned as a way to avoid some disadvantages of monolithic approaches, but since many organizations already have monolithic applications around, how can you transition from the old to the new?

Why JSON Won Over XML

json versus xml

The vast majority of APIs today are using the JavaScript Object Notation (JSON) to represent the structured data that they are exchanging. While JSON has been popular for a number of years now, there still are APIs out there that use the Extensible Markup Language (XML) instead, and in some communities, this still is a popular data format.

Why JSON Won Over XML

It's interesting to think about the fact that the first wave of APIs, called Web Services back then, was based on XML ( SOAP being the most notable representative), and how quickly this changed for SOAP and XML being discarded as being too heavy and too clunky.

KPIs for APIs: How They Are Used in The Real World [Video]

APIs are an essential component of today's digitalization and digital transformation efforts. But how can you define and measure the status and success of individual APIs, API landscapes, API programs, and API platforms? Eric Horesnyi, Catalyst at Axway, conducted a study of real-world key performance indicators (KPIs) that large organizations are using for their API initiatives.

No organization would create and offer products without having a plan for how to manage them, and the very same thing is true for APIs.

KPIs for APIs

In order to manage APIs effectively, it is important to treat them as products, or rather, to make APIs part of the product management practice. And while KPIs are not the only thing necessary for managing APIs as a product, it is important to have them so that there are clear objectives about what should be achieved, and clear ways of how to measure progress and success.