大家=)
我是休息服务方面的新手,所以我不确定某些功能是否可行。
例如,我有一个项目列表以及在释放到客户端应用程序之前过滤这些项目的多种方法。
我正在使用 .net
、linq
和 wcf
休息服务以及 json
返回格式。
过滤列表的方法:
.../Items/RecentOnes
.../Items/FilteredByDate
.../Items/ItemsWithCrashID('CrashId')
.../Items/ItemsWithValue('Value')
等等。 我需要在一个查询中调用这些过滤器。喜欢
.../Items/ItemsWithValue('Value')/RecentOnes/FilteredByDate
或
.../Items/FilteredByDate/ItemsWithCrashID('CrashID')/Recent
以及其他 14 种可能的组合。 (如您所见,过滤器的顺序并不重要)
我的问题是 - 是否有可能以某种方式编写这 4 个服务,以使所有这些组合都能工作?
或者唯一的方法是编写一个具有 4 个参数的服务,例如
.../Items?recentOnes=true&FIlteredByDate=false&CrashID=&Value=somevalue ?
提前致谢=)
最佳答案
问得好!由于 Restful Web 服务使用 url 作为资源表示,例如:
.../items => get all items
.../items/1 => get an item which id == 1
.../items/1/edit => edit an item which id == 1
.../items?value='computer' => get all items which value == 'computer'
这样你就可以看到你的网址:
.../Items/ItemsWithValue('Value')...
它根本不代表任何特定资源。您似乎正在寻找一些按值(value)过滤的元素。这就像一次搜索。所以你的第二个选择更好,使用任何你想过滤的东西作为查询字符串。
关于休息服务有很多条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10793951/