在restful url get上编码分页信息的标准方法?

ope*_*sas 6 rest pagination friendly-url

我认为用几个例子可以更好地解释我的问题......

获取http://myservice/myresource/?name=xxx&country=xxxx&_page=3&_page_len=10&_order=name asc

也就是说,一方面我有条件( name=xxx&country=xxxx ),另一方面我有影响查询的参数( _page=3&_page_len=10&_order=name asc )

现在,我想使用一些特殊的前缀(在这种情况下为“_”)来避免条件和参数之间的冲突(如果我的资源有“order”属性怎么办?)

有一些标准方法来处理这些情况吗?

--

我找到了这个例子(只是挑一个) http://www.peej.co.uk/articles/restful-delicious.html

获取http://del.icio.us/api/peej/bookmarks/?tag=mytag&dt=2009-05-30&start=1&end=2

但在这种情况下,条件字段已经定义(没有开始或结束属性)

我正在寻找一些通用的解决方案......

-- 编辑,一个更详细的例子来澄清

每一项都完全独立......假设我的资源是客户,并且(幸运的是)我的数据库中有数百万个客户。

所以网址可能是这样的

http://myservice/customers/?country=argentina,last_operation=2009-01-01..2010-01-01

它应该给我所有去年购买过任何东西的阿根廷客户

现在,我想使用此服务来构建浏览页面,或者使用 ajax 填充组合,因此想法是添加一些元数据来控制我应该获取哪些信息

要构建浏览页面,我会添加

http://...,_page=1,_page_len=10,_order=状态,名称

并使用 ajax 填充自动建议组合

http://...,_page=1,_page_len=100,_order=状态,名称,名称=what_ever_type_the_user *

用与用户输入的内容相匹配的前 100 个客户来填充组合...

我的问题是是否有某种标准(书面或非书面)方式以restfull url 方式编码此类内容......

Rob*_*low 8

虽然没有标准,但Web API 设计(Apigee 编写)是创建 Web API 时的一本很棒的建议书。我将其视为一种标准,并尽可能遵循其建议。

在“分页和部分响应”下,他们建议(第 17 页):

使用限制和偏移量

我们建议限制和偏移。它更常见,在领先的数据库中很容易理解,并且对于开发人员来说很容易。

/dogs?limit=25&offset=50
Run Code Online (Sandbox Code Playgroud)


cgp*_*cgp 2

没有定义执行此操作的方法的标准或约定,但使用下划线(一个或两个)来表示元信息并不是一个坏主意。这是某些语言中按照约定指定成员变量的方法。