Break the API Silos

Zdenek “Z” Nemec
Good API
Published in
3 min readJan 15, 2017

--

You want a grain, but you need to buy the whole silo. Every API provider today is forcing you to get the whole package. But what if you just want to send that one payment, put that one file into version control or just one query of the weather in the paradise you are going to visit next week?

I’m sorry, you can’t. Register here. Get that authentication token. Pay there. Learn new paradigms and vocabularies. Create a new user identity. Similar data but not really. It’s way faster to go to your browser, authenticate on your bank’s website (you’ve opened the account in a physical branch right?) and send the payment to Phil. Then, you go to your GitHub, create a new repo clone it locally, edit the file and push it upstream. Finally, check that weather website … um, what was the name of the village where the resort is? Time to visit the booking site…

Sure Viv.ai or Siri, Alexa or Cortana to the rescue. The point is, it’s faster to do all this on your computer, in a browser.

I feel we are taking too big bites. We are building Vivs and Siris without first having a programmatic way to query or mutate the data needed.

There is no accessible intermediary between going to a website to make a payment and asking your Viv virtual assistant to do so. Isn’t that strange? If you want to perform an atomic taks you have to use voice control or use the website. Nothing in between. Sure you can use the Paypal, Stripe or another API, but you will never do it unless you are building a business on top of these services. It’s simply too expensive. Both price and time-wise.

The saddest part? Modern APIs, supposed to follow the REST principles are nowhere close to how the web works. There are hardly some links inside any given API, but there are absolutely no links between APIs. The APIs aren’t interconnected. The functionality is in silos.

All I’m asking for is a serverless.com, webtask.io “function” to call declaratively. And preferably to chain couple of these calls together.

<What’s up message> “Hey Phil, I see it’s freezing in Anchorage, here is the $40 I owe you so you can get a nice hot beverage”.

Doing this isn’t effectively possible right now. Siri, Cortana et. al are solving this (if at all) by smart product management and imperative programming. But that doesn’t scale.

To address the problem with scaling, Viv claims to build the “universe of capabilities” and use “dynamic program generation,” but such an intermediary layer is unprecedented.

Understand, this isn’t a technical issue. It’s the silos that APIs providers created. They don’t know any better.

“You have to get a paid plan and an API key, and then we might let you hack against our endpoints.”

Rinse and repeat with other service providers. You can’t pay for just one call, without buying the whole package. And even if there is no payment, no key (not likely), there is no semantics and consistency. You have to get into imperative mess, handle unseen errors and read inconsistent documentations.

And hands down, the current state of semantic web and linked data isn’t helping either. If you’d try to look up the proper vocabularies and ontologies for the terms above, you’d spend good part of the day just to put these phrases together.

It would be interesting to see the intermediary layer Viv is building. I suspect they are building their ontology and expect developers to semantically “mark” their service endpoints so Viv assistant can look them up during the dynamic program generation.

But if we are to see the future where microbots will be able to use services we have to make the leap. We need to break our API silos, offer the API functionality at atomic, stateless level and provide a uniform interface to all of this.

--

--