【问题标题】:how to specify a range of data or multiple entities in a restful web-service如何在 RESTful Web 服务中指定一系列数据或多个实体
【发布时间】:2011-09-01 15:18:00
【问题描述】:

要在一个 RESTful Web 服务中访问用户实例,URL 的结构如下面的 curl 请求所示:

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

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

【问题讨论】:

    标签: rest paging range restful-url


    【解决方案1】:

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

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

    分页?好主意——把每个页面变成它自己的资源,并将它们链接在一起。看看 Google 显示搜索结果以获取提示的方式。

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

    无论如何,重申我的第一点:不要将 RESTful 接口视为一种 API,它表现为一组 URI 构造规则。相反,请考虑资源、表示和超媒体。

    【讨论】:

    • 我还看到人们使用 HTTP Range 标头(通过项目而不是更常见的字节)进行分页,但我担心它作为一种机制的可发现性。
    猜你喜欢
    • 2014-11-23
    • 1970-01-01
    • 2011-06-04
    • 1970-01-01
    • 2011-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多