如何在宁静的Web服务中指定一系列数据或多个实体

时间:2011-09-01 15:18:01

标签: rest paging range restful-url

要在宁静的网络服务中访问用户的实例,网址的结构如下面的卷曲请求所示:

curl -v -X GET -s“$ BASE_URL / User / $ {customer_id} .json”

如果我想通过一系列用户实体指定所有用户实体或页面,例如我数据库中的前50个用户,我将如何构建我的请求以使其符合REST ???

1 个答案:

答案 0 :(得分:12)

您应该首先尝试不再强调URI中字符的含义。虽然漂亮,漂亮和可读的URI是一件好事,但它们与REST无关 - 事实上,通过将所有URI更改为无意义的字符串来判断RESTful接口的设计是一个很好的练习,并在之后添加美观。客户端永远不应该知道服务器的URI结构,原因很简单,服务器之后就无法对其进行更改。

接下来,如果客户列表对您来说是一个有意义的概念,您应该将其转化为自己的资源。在其表示中,您可能希望包含有关每个客户的一些信息,以及指向每个客户资源的链接。

寻呼?好主意 - 将每个页面转换为自己的资源,并将它们链接在一起。看一下Google为搜索结果提供提示的方式。

通常这就是您所需要的,因为客户端无需指定页面大小。但如果是,您基本上有两个选项:您可以拥有一个封装表单的资源,该表单允许您指定参数,这些参数在提交时将直接或间接通过重定向将您带到相应的URI。或者你可以包含一个穷人的表格,一个URI模板。

在任何情况下,重新迭代我的第一点:不要将RESTful接口视为一个API,将其自身表示为一组URI构造规则。相反,请考虑资源,表示和超媒体。