From the API examples that we've seen so far, you might have observed that they're straightforward, unambiguous, easy to consume, well-structured, and most importantly accessible with well-known and standardized HTTP methods.
By now, we have a fair understanding of the APIs, and that they are one of the best possible solutions for resolving many digitization challenges out of the box; with our earlier examples, we also know who is consuming those APIs. Now let's ponder how we can create such usable APIs and expose them for consumption. Are there any basic and necessary principles for designing APIs that we must take into account even before we delve into API design? What should the API allow the consumers to do with it? What do the consumers want to do with it? To answer our questions, we will need to understand the following API design...