REST APIs are nowadays the de-facto standard for Web applications. However, as more systems and services adopt the REST architectural style, many problems arise regularly. To avoid these repetitive problems, developers should follow good practices and avoid bad ones. Thus, research on best and bad practices and how to design simple but effective REST APIs is important. Yet, to the best of our knowledge, only a few recurring REST API practices have been codified in the form of design (anti)patterns, which include a name, an intent, a context, and some solutions. There are works on defining or detecting some practices, but not on codifying these practices as patterns. In this thesis, we present the most up-to-date list of REST API practices and formalise them in the form of design (anti)patterns to ease their use by developers. During this formalisation, we also devise and formalise solutions to these practices. Finally, we validate our design (anti)patterns with a survey and interviews of 55 developers, which confirm that our solutions are acceptable by practitioners and reflect real problems and solutions.