REST APIs utilize HTTP requests for CRUD operations on resources, following six guiding architectural constraints for being truly RESTful.
Key principles include resource identification, client-server architecture, statelessness, cacheability, layered system, and optional code on demand.
REST API design focuses on resources over actions, using nouns for endpoints, standard HTTP methods, and proper use of HTTP status codes.
Best practices include pagination, filtering, versioning, error handling, authentication, rate limiting, HTTPS encryption, documentation, and strategies for evolving APIs.
Common REST API anti-patterns to avoid include ignoring HTTP method semantics, creating operation-based endpoints, returning inconsistent responses, neglecting documentation, and tight coupling between API and client.