Paginação em um aplicativo Web REST

Esta é uma reformulação mais genérica doessa questã (com a eliminação das partes específicas do Rails)

Não sei como implementar a paginação em um recurso em um aplicativo Web RESTful. Supondo que eu tenha um recurso chamadoproducts, qual das seguintes opções você acha que é a melhor abordagem e por quê:

1. Usando apenas cadeias de consulta

por exemplo.http://application/products?page=2&sort_by=date&sort_how=asc
O problema aqui é que não consigo usar o cache de página inteira e também o URL não é muito limpo e fácil de lembra

2. Usando páginas como recursos e cadeias de consulta para classificar

por exemplo.http://application/products/page/2?sort_by=date&sort_how=asc
Neste caso, o problema que se vê é quehttp://application/products/pages/1 não é um recurso exclusivo, pois o uso desort_by=price pode produzir um resultado totalmente diferente Ainda não consigo usar o cache da págin

3. Usando páginas como recursos e um segmento de URL para classificar

por exemplo.http://application/products/by-date/page/2
Pessoalmente, não vejo problema em usar esse método, mas alguém me avisou que esse não é um bom caminho a seguir (ele não deu uma razão, por isso, se você souberporqu não é recomendado, por favor me avise)

Qualque sugestões, opiniões, críticas são mais que bem-vindas. Obrigado

questionAnswers(12)

yourAnswerToTheQuestion