【发布时间】:2011-06-19 10:35:17
【问题描述】:
在数据库中,假设我有很多人的姓名和出生日期,我想获取 20 岁以上的人的姓名。我可能会使用这样的东西:
http://www.example.com/people?age=over20
在这种情况下,路由器会将此 uri 附加到人员资源类。 是否有任何函数可以解析 uri 并获取所需的请求(在本例中,age>20)?还是我应该编写自己的函数?
另一个问题,在这个例子中,查询(age>20)很简单,所以它可以包含在uri中,如果我有复杂的查询(两个表之间的联合..etc)怎么办?我应该将查询放在 xml 文件中并将其发送到服务器吗?
【问题讨论】:
-
如果您将查询放在 GET 实体正文中,则相同的 URI 模式现在映射到大量不同的资源。这意味着缓存对查询的响应变得不可能,您无法通过电子邮件发送查询链接,书签查询不起作用等等。通过自己的资源名称(HTTP 中的 URI)公开每个不同的应用程序资源的 REST 原则避免了所有这些问题。