2011-11-01 84 views
0

我现在有看起来像这样的.NET方法 - GetUsers(Filter filter)这是从客户端发送SOAP请求调用。正如您可能猜到的那样,它需要一堆过滤器并返回与这些过滤器匹配的用户列表。过滤器不是太复杂,它们基本上只是从日期到日期,年龄,性别等等的集合,我在任何时候都有一套过滤器是静态的。REST和筛选记录

我想知道这样做的RESTful方式了。我猜我会有一个Users资源。会不会像GET /Users?fromDate=11-1-2011&toDate=11-2-2011&age=&sex=M?有没有办法将它通过一个Filter而不必将其转换为个人属性?

我消耗来自移动客户端这个服务,所以我认为实际上创建了一个过滤器的额外要求的开销:POST filters是坏UX。即使我们这样做,POST filters甚至意味着什么?是否应该在数据库中创建过滤器记录?如果我的请求序列如下所示,服务器如何跟踪刚创建的过滤器?

POST /filters -- returns a filter 
{ 
    "from-date" : "11-1-2011", 
    "to-date" : "11-2-2011", 
    "age" : "", 
    "sex" : "M" 
} 


GET /Users?filter=filter_id 

道歉,如果请求出现有点困惑。我是。

感谢,
Teja公司

回答

2

我们正在做这就像你有它 GET /用户?FROM日期= 2011年11月1日& TODATE = 2011年11月2日&年龄= &性别= M

我们有9个查询字符串值。

我看不出与

1

任何问题,我处理它的方式是我做一个POST含参数的身体,然后我返回重定向到一个GET。 GET URL看起来完全取决于服务器。如果你想将过滤器转换成单独的查询参数,或者如果你想持久化一个过滤器,然后添加一个查询参数指向保存的过滤器也没关系。好处是你可以随时改变主意,客户不会在意。

而且,因为你正在做一个让你可以利用高速缓存的优势,这应该足以弥补做额外的retquest。

+0

我下面,因为响应工作..好感觉容易,只需传递请求参数,而不是创建/坚持一个筛选的资源和检索它和所有。不过谢谢。 –