[解決済み] REST Web アプリケーションのページネーション
質問
のより一般的な再定式化です。 この質問 (Rails特有の部分を削除して)
RESTfulなWebアプリケーションで、リソースにページネーションを実装する方法がよくわかりません。
というリソースがあると仮定します。
products
また、その理由も教えてください。
1. クエリ文字列のみを使用する
例
http://application/products?page=2&sort_by=date&sort_how=asc
この問題は、フルページキャッシングが使えないことと、URLがあまりきれいで覚えやすいものではないことです。
2. ページをリソースとして使用し、クエリ文字列で振り分けを行う
例
http://application/products/page/2?sort_by=date&sort_how=asc
この場合、見えている問題点は
http://application/products/pages/1
を使用するため、一意なリソースではありません。
sort_by=price
は全く異なる結果をもたらすことができます
と
やはりページキャッシングは使えない。
3. ページをリソースとして使用し、振り分け用のURLセグメントを使用する
例
http://application/products/by-date/page/2
私自身はこの方法で問題ないと思っていますが、ある人からこの方法は良くないと警告されました(理由は書いてなかったので、ご存知の方は教えてください)。
何故
を推奨していませんので、教えてください。)
任意の ご意見、ご感想、批評をお待ちしています。ありがとうございます。
解決方法は?
バージョン3の問題は、ページをリソースとして見るか、ページ上の製品をリソースとして見るかという、視点(quot;point of view")の問題だと思います。
もし、ページをリソースとして見るのであれば、ページ2に対するクエリーは常にページ2を返すので、全く問題ない解決策です。
しかし、ページ上の製品をリソースとして見た場合、2ページ目の製品が変更される可能性があるという問題があります(古い製品が削除されたり、何でも)、この場合、URIは常に は同じリソースを返します。
例:顧客が商品一覧ページXへのリンクを保存した場合、次にそのリンクを開いたときには、当該商品はもはやページXに存在しないかもしれない。
関連
-
[解決済み] SOAPとRESTの比較(相違点)
-
[解決済み] 検証失敗または重複が無効な場合のREST HTTPステータスコード
-
[解決済み] RESTとRESTfulの違いは何ですか?
-
[解決済み] RESTを理解する。動詞、エラーコード、認証
-
[解決済み】REST APIでのPUTメソッドとPATCHメソッドの使い分け 実生活でのシナリオ
-
[解決済み】API paginationのベストプラクティス
-
[解決済み] REST API 認証
-
[解決済み] レスポンスコードが200または201で、内容がPOSTのリクエストを作成します。
-
[解決済み] RESTのPUT/POST/DELETEコールは、規約によって何を返すべきですか?
-
[解決済み] RESTを使った複数レコードの削除
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] HTTP GET(リクエストボディ付き
-
[解決済み] API のバージョン管理に関するベストプラクティス?[クローズド]
-
[解決済み] RESTアプリケーションはステートレスであることが前提である場合、セッションはどのように管理するのですか?
-
[解決済み] cURLを使ってCookieを送信するには?
-
[解決済み] REST Web アプリケーションのページネーション
-
[解決済み] レスポンスコードが200または201で、内容がPOSTのリクエストを作成します。
-
[解決済み] リソースとエンドポイントの違いは何ですか?
-
[解決済み] RESTとは?若干の混乱【終了
-
[解決済み] RESTを使った複数レコードの削除
-
[解決済み] REST - ボディにIDを入れるかどうか?