In the API space, everybody is talking about REST. But really, why should APIs be RESTful?
Great products are designed with rigorous customer focus, a deep understanding of the customers, their needs and desires. And with these ingredients, great customer experiences can be designed around a product.
To design great APIs, you first need to realize, that APIs are in fact products. APIs are products of their own! So who are the customers of your API? APIs are never exposed to end-users directly, but they still have customers. The customers are the developers of the API consumer. So when creating a great customer experience, you in fact need to create a great developer experience.
This is where REST comes into the picture. REST makes it easy to create a great developer experience. REST imposes a couple of architectural constraints on your API design.
Constraints are often seen as a limitation; but in fact they are not – they are a help for the designer. Regard the REST constraints not as a limitation, but rather as a support for building great APIs, i.e. APIs that are simple, clear, clean and approachable.
Of course, you need to know about these REST constraints and how to use them. We explain these constraints and show their practical application in chapters 6 and 7 of the API Design Book.