Making simple REST API is easy but once you do more complex things you don't want to stick with the simple rules any more.
This article very well summarizes the important aspects that keep a REST API efficient. HTTP caches, URIs that don't change and links! While I think the article covers the purest form of REST APIs I think you should also be pragmatic and for certain common queries you should consider using composite entities. Kind of like a view in a database. A REST entity that is created from several other entities. Typically such APIs are not truly RESTful since they often are read-only, but they should be part of your toolbox if you ask me.