Developers often dislike APIs and API integrations. They see it as a necessary evil, not part of the core product offering, something to be dealt with quickly and forget about. Not sure what sadomasochistic parts of my brain led me to focus on this exact topic, but here we are.
Despite many developers and even some businesses trying to deny the relevance of APIs, most of the time, web APIs and integrations as part of the product are impossible to forget. The constant change of code that APIs rely on, the highly public and rigid nature of APIs and the fact that clients have almost zero control over API services often lead to painful awakenings and bug discoveries.
Coming from a risk-tolerant background, I actually enjoy these factors and made APIs my faith many years ago. APIs have always been more like puzzles to me — there is always something new to figure out and solve when you integrate or build a new API. I also like putting the pieces together with others and doing some cross-team and cross-client communication when creating and designing an API to provide the most business value possible while keeping it concise and easy to learn. All of this, supported by the fundamentals of computer science and engineering parts, like testing, web security, networks and protocols, delivery pipelines, and observability - what a monster of a puzzle.
Then, there is all the automation around creating APIs. Imagine writing the least possible code and test code that leaves minimum room for errors and, at the same time, standardizes acceptable inputs and rendered outputs, including an automatically generated spec file and developer documentation. An API automation nirvana that seems achievable and unrealistic at the same time.
Below, you'll find my personal API Puzzle collection to help us casual software engineers who need to dig through the next marketing API integration (again) or who need to ship an API for the SaaS product that recently started to take off. Some microservice folks who try to map one service to the next in an endless loop of private integrations might also find some good bits here.
All of that is more fun to do when we can minimize stress factors with tested code, secure implementations, flexible designs, diamond-cut steps in the delivery pipeline, healthy integrations, and meaningful insights into your API's usage. Let me address these points below, bit by bit, puzzle piece by puzzle piece.