Overview
REST API design fails when it treats the API as a thin wrapper over database operations — exposing CRUD endpoints that mirror database tables rather than modeling the domain's actual resources and operations. The result is an API that forces consumers to make multiple requests to accomplish a single business operation, leaks implementation details, and breaks clients when the database schema changes. Good API design is domain-driven, consumer-oriented, and stable across internal implementation changes.
The REST API Design Framework models resources from the domain rather than the database, applies HTTP semantics correctly, and produces a consistent, predictable interface that consumers can learn once and apply universally.