I would recommend using query parameters for filtering status for your book list resource:
myapp/books/?status=new myapp/books/?status=not_new
Both queries return the same resource (list of books), you just filter the types you want in this list, so using a query parameter makes sense. I am using not_ with a state prefix to execute callbacks, but you can use whatever convention you want.
REST does not require you to not receive parameters (it seems some people think that getting parameters is voodoo), just do not use them to make faux-RPC calls :)
The reason I like this method is to open your options later, when you want to add a check for all books with several pieces of information, such as those that have new status and good condition.
myapp/books/?status=new&condition=good
If you try to break this down into URL segments rather than request parameters, it will be very messy.
source share