Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sorting OpenRasta-为列表资源提供筛选、排序和分页_Sorting_Filtering_Paging_Openrasta_Restful Url - Fatal编程技术网

Sorting OpenRasta-为列表资源提供筛选、排序和分页

Sorting OpenRasta-为列表资源提供筛选、排序和分页,sorting,filtering,paging,openrasta,restful-url,Sorting,Filtering,Paging,Openrasta,Restful Url,我们正在使用OpenRasta创建一个restapi,除了对所有资源进行常规的GET、POST、PUT和DELETE之外,我们还提供了具有复数名称的GET-on资源。因此,API的使用者可以在User上获取、发布、放置和删除,还可以在Users上执行GET操作,该操作将返回List。现在,我们希望客户端能够根据其属性对其进行过滤和排序,并允许支持分页以分页表格格式显示数据 虽然我看了主页,觉得它很有用,但在看了博客文章和入门页面后,我不明白如何使用它来解决OpenRasta中的问题 或者我还能做

我们正在使用OpenRasta创建一个restapi,除了对所有资源进行常规的GET、POST、PUT和DELETE之外,我们还提供了具有复数名称的GET-on资源。因此,API的使用者可以在
User
上获取、发布、放置和删除,还可以在
Users
上执行GET操作,该操作将返回
List
。现在,我们希望客户端能够根据其属性对其进行过滤和排序,并允许支持分页以分页表格格式显示数据

虽然我看了主页,觉得它很有用,但在看了博客文章和入门页面后,我不明白如何使用它来解决OpenRasta中的问题


或者我还能做其他更简单的事情吗?

或者不支持OData之类的功能,主要是因为它会导致非常无效率的系统

如果/users是“用户列表”,则它与/users/1(用户的第一页)或/users/byName/1(按名称排序的用户的第一页)不同

当然,您可以通过注册具有查询参数的URI轻松实现所有这些,因为这些参数是可选的

.AtUri("/users?page={page}&filter={filter}
你的处理程序看起来像

public List<User> Get(int page = 0, string filter = null) { ... }
publicslist-Get(int-page=0,stringfilter=null){…}

Hi-seb,它是如何导致系统失效的,您能举个例子吗?谢谢此外,允许客户端指定他们希望返回给定资源的“字段”,这是否考虑不好?这会导致非常静态的URI定义、臃肿的媒体类型和对所要达到的目标的低保真度。几年前,我在国家数据中心(NDC)强调了这些问题,视频在某处可以找到。对于用户想要的特定资源的字段列表,意味着它是不同的资源,这可能导致非常糟糕的实践,或者使您的URI方案对缓存和中介非常无效。与其他所有内容一样,对于您的系统来说,它是RPC和ReST之间的平衡,因此没有严格的答案来限制是否违反ReST约束。