FAST AND EASY
Now, faced with a project to build an API, and without any real use cases, the engineering team does the simplest possible thing. Exposes the database schema as a REST API. I call this the lowest common denominator API. Now we know for sure that the API is functionally complete, but how usable is it, really?
We have separate endpoints where there are separate items in the database. A simple query for information about a Hawaiian Bonzai pizza could require tens of calls to the API. It turns out that this is the same kind of interface they're using for the main website. So they say "It's good enough for the site". But is it, really?
Let's pause for a moment here and consider. It is simple to build a REST API. Most developers I know can do it in under 15 minutes. I have so many people ask me to review their API, then show me their functional spec. I will use standard HTTP methods. I will use a Node.js server. This is how timeouts and throttling will work. *yawn*
It's an Application Programming Interface, people. The interface is what it is. That's where the spec should be focused.