# RESTful API Design ## 📚 Books - [The Design of Web APIs, Arnaud Lauret](https://www.manning.com/books/the-design-of-web-apis) ## 📘 Resources - [https://restfulapi.net](https://restfulapi.net) - [whitehouse/api-standards](https://github.com/whitehouse/api-standards) - [adidas API Guidelines](https://adidas.gitbook.io/api-guidelines/) ## 📕 Articles - [What is REST](https://restfulapi.net) - [Microsoft REST API Guidelines](https://github.com/microsoft/api-guidelines/blob/vNext/Guidelines.md) - [Design Guidelines](http://apistylebook.com/design/guidelines/) - [REST API Naming Conventions](https://restfulapi.net/resource-naming/) - [Web API design](https://docs.microsoft.com/en-us/azure/architecture/best-practices/api-design) - [Richardson Maturity Model](https://martinfowler.com/articles/richardsonMaturityModel.html) - [RESTful API Design: 13 Best Practices to Make Your Users Happy](https://florimond.dev/blog/articles/2018/08/restful-api-design-13-best-practices-to-make-your-users-happy/) - [Best Practices for Designing a Pragmatic RESTful API](https://www.vinaysahni.com/best-practices-for-a-pragmatic-restful-api) - [Design Guidelines](http://apistylebook.com/design/guidelines/) - [The Web API Checklist -- 43 Things To Think About When Designing, Testing, and Releasing your API](https://mathieu.fenniak.net/the-api-checklist/) - [Design Topics](http://apistylebook.com/design/topics/) - [OpenAPI Specification](https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.2.md) - [REST lessons learned](https://blog.ploeh.dk/2013/04/29/rest-lessons-learned/) - [REST Architectural Constraints](https://restfulapi.net/rest-architectural-constraints/) - [Caching REST API Response](https://restfulapi.net/caching/) - [REST Resource Representation Compression](https://restfulapi.net/rest-resource-compression/) - [Content Negotiation in REST APIs](https://restfulapi.net/content-negotiation/) - [HATEOAS Driven REST APIs](https://restfulapi.net/hateoas/) - [Idempotent REST APIs](https://restfulapi.net/idempotent-rest-apis/) - [REST API Security Essentials](https://restfulapi.net/security-essentials/) - [REST API Versioning](https://restfulapi.net/versioning/) - [Statelessness in REST APIs](https://restfulapi.net/statelessness/) - [Comparing SOAP vs REST APIs](https://restfulapi.net/soap-vs-rest-apis/) - [HTTP Methods](https://restfulapi.net/http-methods/) - [HTTP Status Codes](https://restfulapi.net/http-status-codes/) - [What is an API?](https://restfulapi.net/what-is-an-api/) - [REST – PUT vs POST](https://restfulapi.net/rest-put-vs-post/) - [HTTP Status Codes Cheatsheet](https://vishnuch.tech/http-status-codes-cheatsheet) - [Zalando RESTful API and Event Guidelines](https://opensource.zalando.com/restful-api-guidelines/index.html) - [CRUD API Design & CRUD API Recommendations](https://stoplight.io/blog/crud-api-design/) - [Principles & Best practices of REST API Design](https://zonito.medium.com/best-practice-and-cheat-sheet-for-rest-api-design-6a6e12dfa89f) - [Principles & Best practices of REST API Design](https://blog.devgenius.io/best-practice-and-cheat-sheet-for-rest-api-design-6a6e12dfa89f) - [RESTful web API design](https://docs.microsoft.com/en-us/azure/architecture/best-practices/api-design) - [Web API implementation](https://docs.microsoft.com/en-us/azure/architecture/best-practices/api-implementation) - [ENSURING THE CORRECTNESS OF YOUR API](https://www.natmarchand.fr/ensuring-correctness-api/) ## 📺 Videos - [Nate Barbettini – API Throwdown: RPC vs REST vs GraphQL, Iterate 20](https://www.youtube.com/watch?v=IvsANO0qZEg)