Earlier quoted context omitted.
What if I've selected 5 arbitrary people to unfriend? `PUT /friends/???.json`
OP here. Indeed. And importantly, this API makes it possible to restrict the query to a list of documents that the client doesn't already have from another source. In practice, once you start using compound documents with an identity map, there are many cases where existing documents exist on the client and shouldn't be re-fetched. One really simple example is having a number documents that are related to "people" do…
Compounded documents or unions/nested data should only be avoid. I think strong normalization is a good idea.
In the second case. The flow could be:
GET /posts GET /posts/1/comments GET /posts/1/comments/authors
Comments only need to rel to authors, which can be loaded next. Data-binding for the win.
I'm not against embedded data as an optimization. It's difficult to fit.