This is a more generic reformulation of this question (with the elimination of the Rails specific parts)
I am not sure how to implement pagination on a resource in a RESTful web application.
Assuming that I have a resource called products
, which of the following do you think is the best approach, and why:
1. Using only query strings
eg. http://application/products?page=2&sort_by=date&sort_how=asc
The problem here is that I can't use full page caching and also the URL is not very clean and easy to remember.
2. Using pages as resources and query strings for sorting
eg. http://application/products/page/2?sort_by=date&sort_how=asc
In this case, the problem that is see is that http://application/products/pages/1
is not a unique resource since using sort_by=price
can yield a totally different result and I still can't use page caching.
3. Using pages as resources and an URL segment for sorting
eg. http://application/products/by-date/page/2
I personally see no problem in using this method, but someone warned me that this is not a good way to go (he didn't give a reason, so if you know why it's not recommended, please let me know)
Any suggestions, opinions, critiques are more than welcome. Thanks.