‣ Requires multiple round trips for fetching complex object graphs
‣ Over fetching — As the model grows, so does the payload
‣ High potential for breaking API changes
‣ Structure of the response dictated by the server
‣ Potentially a huge amount of diﬀerent endpoints and thus complexity
‣ No formal speciﬁcation resulting in various other shortcomings
PROBLEMS WITH REST
Multiple round trips
When fetching complex, relational data structures: In
order to descent further into the object graph,
multiple round trips to the server are required.
Unless speciﬁcally designed for a given purpose, you
often have to deal with needlessly large and bloated
Compatibility and versioning
By changing your model you are very likely to break
your APIs. API versioning can mitigate that potential
damage at the cost of exponentially increasing
Attempting to circumvent the aforementioned
problems often leads to a huge amount of bespoke/
ad-hoc endpoints. This, in turn, inevitably increases
the complexity of your application.
Your API is usually
composed of a
spectrum of diﬀerent
interpretations of REST
No formal speciﬁcation
No prescribed pattern for deprecation.
No standardized introspection functionality.