В MVC информация о нумерации страниц должна идти по пути или строке запроса? - PullRequest
6 голосов
/ 12 января 2009

В пути:

Формат: http://mydomain.com/{category}/{subcategory}/{pageNumber}/{pageSize}

Пример: http://mydomain.com/books/thriller/3/25

В строке запроса:

Формат: http://mydomain.com/{category}/{subcategory}? pageNumber = {pageNumber} & pageSize = {pageSize}

Пример: http://mydomain.com/books/thriller?pageNumber=3&pageSize=25

Мне нравится, когда все идет по пути, но моя проблема в том, что хотя очевидно (или, по крайней мере, несколько очевидно), что "книги" и "триллер" в первом примере, 3 "и" 25 "кажутся довольно произвольными по контрасту.

Есть ли канонический метод определения того, что и где происходит в MVC, или это действительно просто до разработчика?

Ответы [ 6 ]

17 голосов
/ 12 января 2009

Я предпочитаю, чтобы такие вещи, как номера страниц, были в переменных строки запроса. Я думаю, что есть разница в информативности между

http://mydomain.com/books/thriller?pagesize=50&page=4

и

http://mydomain.com/books/thriller/50/4

Смысл (для меня) в наличии чистых URL-адресов заключается в том, чтобы они были более наглядными и удобочитаемыми, и я нахожу первый пример именно таким.

Один интересный момент, сделанный JohnRudolfLewis :

Одно правило, которому я следую, что если аргумент требуется, рассмотреть возможность использования пути, если аргумент необязательный, всегда используйте Аргументы строки запроса.

6 голосов
/ 12 января 2009

Практическое правило, которому я следую, заключается в том, что, если аргумент обязателен, рассмотрите возможность использования пути, если аргумент необязательный, всегда используйте аргументы строки запроса.

В целом, я бы придерживался того, что делает URL более читабельным.

Этот сайт помещает его в строку запроса: https://stackoverflow.com/questions?page=2&pagesize=30

3 голосов
/ 12 января 2009

Ну, это, очевидно, зависит от вас. Но вы разрабатываете интерфейс RESTful, который должен быть удобочитаемым. Строка запроса намного лучше в этом отношении. В противном случае вы смотрите на два числа, которые действительно могут быть чем угодно. А кто запомнит заказ?

1 голос
/ 12 января 2009

Есть ли канонический метод определения того, что и где происходит в MVC, или это действительно просто разработчик?

Вам решать.

MVC - это организация / поток кода на стороне сервера и отделение представления от бизнес-уровня, а не столько параметры запроса.

0 голосов
/ 21 декабря 2009

Вы также можете рассмотреть следующее

Формат

http://mydomain.com/{category}/{subcategory}/page/{pageNumber}/results/{pageSize}

Пример

http://mydomain.com/books/thriller/page/3/results/25
0 голосов
/ 12 января 2009

Это в значительной степени зависит от разработчика. Я бы сказал, поместите размер страницы в URL.

...