Friendly APIs

Mordechai Danielov
2 min readJun 23, 2021
Friendly API

APIs are not that new, really. It’s already been almost 10 years since Amazon’s famous “API mandate”. However, they age well. Probably because of the “I” in API. Interfaces are needed more and not less. What’s interesting about APIs is that you have to have a certain no-nonsense mentality to develop them well. It has to be not about our feelings/ egos/ stuff, but strictly about the interface definition/ compliance.

Consider for example, a person that comes to you with a woeful story of many months of wasted efforts to synchronize their ERP with an online store (Shopify). What would you think? How would you approach the problem? For BitWise, soap opera details don’t matter. We’re on a mission to design solutions, and as such, what we want is facts — and nothing but the facts.

“Our ERP vendor is so secretive. I tried so hard to get them to cooperate, but they just refuse to do anything to help.“ — says the frustrated client. Part of not-judging is also not to judge the client. All they want is to get this thing up and running, and what they really want to know is if it can happen any time soon.

I put on my calm and reassuring hat and respond — “I see, let’s get a login to their database and we can take it from there. I will contact them. As far as Shopify, they have a product API so we should just be able to use that.”

Yes, I know that there are many possible problems ahead, not the least of which is dirty data, but at BitWise, we know how to navigate those waters. All’s well. Indeed, few days later (with the assistance of a very helpful ERP vendor) the API is ready, and test products are uploaded.

The business owner exclaimed — “That was so easy!”

Yeah, that’s what we’re here for.

She gets an idea that she can ask for more — “Can we also update the ERP back with quantities sold on the web?”
Thinking to myself, ok, webhooks, API server, update inventory.
“Sure, we’ll get right on that”
— I respond.
Couple of days later that is working as well. With proper logging, schedule, etc. As a production system is supposed to be.

The great thing about working in this “non-judgemental” way is that there is no frustration, tension. Requirements or conditions may change many times, but a well designed API can take it all. Possibly with minor changes, but no major refactoring. This way, the client feels happy because they got the solution that they were looking for and a developer is happy because s/he created a stable solution.

--

--

Mordechai Danielov

Mordechai Danielov has been working with software for many years. He specializes in databases and moving data around.