分页集合

为了减轻服务的负载,列表操作一次返回的最大项目数量有限。返回的最大项目数量由计算提供程序确定。要导航集合,可以在 URI 中设置 limitmarker 参数。例如

?limit=100&marker=1234

marker 参数是前一个列表中最后一个项目的 ID。默认情况下,服务按创建时间降序排列项目。当服务无法识别创建时间时,它按 ID 排序项目。limit 参数设置页面大小。这两个参数都是可选的。如果客户端请求的 limit 超出了部署所支持的范围,可能会抛出 overLimit (413) 错误。带有无效 ID 的 marker 将返回 badRequest (400) 错误。

为了方便起见,集合应包含 atom next 链接。它们还可以选择性地包含 previous 链接,但当前实现不包含 previous 链接。列表中的最后一页不包含指向“next”页面的链接。以下示例说明了服务器集合中的三个页面。第一页是通过向 http://servers.api.openstack.org/v2.1/servers?limit=1 发送 GET 请求检索到的。在这些示例中,``limit`` 参数将页面大小设置为单个项目。后续链接遵循初始页面大小。因此,客户端可以跟随链接来遍历分页集合,而无需输入 marker 参数。

示例:服务器集合:JSON(第一页)

{
   "servers_links":[
      {
         "href":"https://servers.api.openstack.org/v2.1/servers?limit=1&marker=fc45ace4-3398-447b-8ef9-72a22086d775",
         "rel":"next"
      }
   ],
   "servers":[
      {
         "id":"fc55acf4-3398-447b-8ef9-72a42086d775",
         "links":[
            {
               "href":"https://servers.api.openstack.org/v2.1/servers/fc45ace4-3398-447b-8ef9-72a22086d775",
               "rel":"self"
            },
            {
               "href":"https://servers.api.openstack.org/v2.1/servers/fc45ace4-3398-447b-8ef9-72a22086d775",
               "rel":"bookmark"
            }
         ],
         "name":"elasticsearch-0"
      }
   ]
}

在 JSON 中,分页集合中的成员存储在一个以集合命名的 JSON 数组中。在某些情况下,可以使用 JSON 对象来保存成员,尤其是在使用关联数组更实用时。关于集合本身的属性,包括链接,包含在一个名为实体名称下划线 (_) 和 links 的数组中。以集合名称和下划线开头的对象和数组的组合表示 JSON 中的集合。这种方法允许通过允许它们与任意属性关联来扩展分页集合。