6

在路径中:

格式: 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 中的内容,或者它真的只是由开发人员决定?

4

6 回答 6

17

我更喜欢将页码之类的内容放在查询字符串变量中。我认为描述性之间存在差异

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

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

(对我来说)拥有干净的 url 的目的是让它们更具描述性和可读性,我发现第一个例子就是这样。

JohnRudolfLewis提出的一个有趣观点是:

我遵循的一条经验法则是,如果参数是必需的,请考虑使用路径,如果参数是可选的,请始终使用查询字符串参数。

于 2009-01-12T20:30:07.683 回答
6

我遵循的一条经验法则是,如果参数是必需的,请考虑使用路径,如果参数是可选的,请始终使用查询字符串参数。

总的来说,我会坚持任何使 url 看起来更可读的方法。

该站点将其放在查询字符串中:https ://stackoverflow.com/questions?page=2&pagesize=30

于 2009-01-12T20:30:43.363 回答
3

好吧,这显然取决于你。但是,您正在设计一个应该是人类可读的 RESTful 接口。在这方面,查询字符串要好得多。否则,您将看到两个可能真的是任何数字的数字。谁会记住这个命令?

于 2009-01-12T20:32:45.853 回答
1

是否有一种规范的方法来确定 MVC 中的内容,或者它真的只是由开发人员决定?

由你决定。

MVC 是关于服务器端代码的组织/流程以及将视图与业务层分离,而不是关于查询参数。

于 2009-01-12T20:30:03.067 回答
0

您还可以考虑以下

格式

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

例子

http://mydomain.com/books/thriller/page/3/results/25
于 2009-12-21T04:04:08.417 回答
-1

这几乎取决于开发人员。我会说将 pageSize 放在 URL 中。

于 2009-01-12T20:30:15.377 回答