Thank you for purchasing The Design of Web APIs. APIs are everywhere. If there are thousands of public APIs, then there are millions of private ones, and he numbers keep growing every day. And whether public or private, the design of an API is a wonderful thing to achieve, but also a tricky thing if you’re not aware of all aspects of API design.
Designing an API is far more than just designing a programming interface giving access to capabilities and data of an underlying system. Forget the SOAP, REST, gRPC, of GraphQL discussions… an API designer’s job is far more than just designing a programming interface using a given type.
An API is obviously an interface for software, but not only that. This interface is first and foremost an interface for people: developers. These people want to do things that matter to them. They will choose to use an API not based on its design. These people may at best lose time using it or at worst misuse it depending on its design. Such software interface may be used in a hostile environment, which may impact its design. This interface will be implemented, which also may impact design. And this interface will evolve, which is also a concern for the API designer.