MVCでは、ページネーション情報をパスまたはクエリ文字列に含める必要がありますか?
-
22-07-2019 - |
質問
パス内:
形式: http://mydomain.com/ {category} / {サブカテゴリ} / {pageNumber} / {pageSize}
例: http://mydomain.com/books/スリラー/ 3/25
クエリ文字列内:
形式: http://mydomain.com/ {category} / {サブカテゴリ}? pageNumber = {pageNumber}& pageSize = {pageSize}
例: http://mydomain.com/ books / thriller?pageNumber = 3& pageSize = 25
すべてをパス上に置くのが好きですが、それに関する私の問題は、どの「本」が明らかである(または少なくともやや明白である)ことです。および「スリラー」最初の例では、「3」はおよび「25」対照的にかなりarbitrary意的です。
MVCのどこに行くかを決定する標準的な方法はありますか、それとも開発者次第ですか?
解決
ページ番号のようなものをクエリ文字列変数に含めることを好みます。記述性に違いがあると思います
http://mydomain.com/books/thriller?pagesize=50&page=4
and
http://mydomain.com/books/thriller/50/4
きれいなURLを使用することのポイント(私にとって)は、よりわかりやすく、読みやすくすることです。最初の例はまさにそれだと思います。
JohnRudolfLewis による興味深いポイントの1つは次のとおりです。
私が従う経験則の1つは 引数が必要な場合、 パスの使用を検討する 引数はオプションで、常に使用します クエリ文字列引数。
他のヒント
私が従う経験則の1つは、引数が必要な場合はパスの使用を検討し、引数がオプションの場合は常にクエリ文字列引数を使用することです。
全体として、URLをより読みやすくするものなら何でも使用します。
このサイトはクエリ文字列にそれを置きます: https://stackoverflow.com/questions?page=2&pagesize=30
まあ、それは明らかにあなた次第です。しかし、あなたは人間が読めるはずのRESTfulインターフェースを設計しています。その点で、クエリ文字列ははるかに優れています。そうでなければ、あなたは本当に何でもあり得る2つの数字を見ています。そして、誰が注文を覚えているのですか?
MVCのどこに行くかを決定する標準的な方法はありますか、それとも開発者次第ですか?
それはあなた次第です。
MVCは、サーバー側コードの編成/フローに関するものであり、ビューをビジネスレイヤーから分離するものであり、クエリパラメーターに関するものではありません。
次のことも検討できます
フォーマット
http://mydomain.com/{category}/{subcategory}/page/{pageNumber}/results/{pageSize}
例
http://mydomain.com/books/thriller/page/3/results/25
開発者次第です。 URLにpageSizeを入れると言います。