В MVC должна ли информация о нумерации страниц идти по пути или строке запроса?
-
22-07-2019 - |
Вопрос
В пути:
Формат: http://mydomain.com/{category}/{subcategory}/{pageNumber}/{pageSize}
Пример: http://mydomain.com/books/thriller/3/25
В строке запроса:
Формат: http://mydomain.com/{категория}/{подкатегория}?pageNumber={pageNumber}&pageSize={pageSize}
Пример: http://mydomain.com/books/thriller?pageNumber=3&pageSize=25
Мне нравится, когда все находится на пути, но моя проблема в том, что, хотя это очевидно (или, по крайней мере, в некотором роде очевидно) что такое «книги» и «триллер» в первом примере, «3» и «25» по контрасту кажутся довольно произвольными.
Существует ли канонический метод определения того, что и где происходит в MVC, или это действительно зависит только от разработчика?
Решение
Я предпочитаю, чтобы такие вещи, как номера страниц, были в переменных строки запроса. Я думаю, что есть разница в информативности между
http://mydomain.com/books/thriller?pagesize=50&page=4
и
http://mydomain.com/books/thriller/50/4
Смысл (для меня) в наличии чистых URL-адресов заключается в том, чтобы они были более наглядными и удобочитаемыми, и я считаю, что первый пример - именно это.
Одна интересная мысль, высказанная JohnRudolfLewis , такова:
Одно из правил, которым я следую, что если аргумент требуется, рассмотреть возможность использования пути, если аргумент необязательный, всегда используйте Аргументы строки запроса.
Другие советы
Основное правило, которому я следую, заключается в том, что если аргумент обязателен, рассмотрите возможность использования пути, если аргумент необязательный, всегда используйте аргументы строки запроса.
В целом, я бы придерживался того, что делает URL более читабельным.
Этот сайт помещает его в строку запроса: https://stackoverflow.com/questions?page=2&pagesize=30 р>
Ну, это, очевидно, зависит от вас. Но вы разрабатываете интерфейс RESTful, который должен быть удобочитаемым. Строка запроса намного лучше в этом отношении. В противном случае вы смотрите на два числа, которые действительно могут быть чем угодно. И кто будет помнить заказ?
Есть ли канонический метод определения того, что и где происходит в MVC, или это действительно только разработчик?
Это зависит от вас.
MVC - это организация / поток кода на стороне сервера и отделение представления от бизнес-уровня, а не столько параметры запроса.
Вы также можете рассмотреть следующее
Формат
http://mydomain.com/{category}/{subcategory}/page/{pageNumber}/results/{pageSize}
Пример
http://mydomain.com/books/thriller/page/3/results/25
Это в значительной степени зависит от разработчика. Я бы сказал, поместите размер страницы в URL.