Rest 转换属性上的OData搜索

Rest 转换属性上的OData搜索,rest,odata,Rest,Odata,我们通过ODataRESTAPI提供json对象。对象的大致结构如下所示 { “财产1”:“价值1”, “物业2”:{ “InterestingProperty”:“/text1/part1/text2/part2” } } “part1”和“part2”是我感兴趣的值,从后端开始,它们一起被索引 我需要设计一个列表API,它允许过滤在特定属性中同时包含part1和part2的对象。 有关于如何进行此操作的指导吗?您可以在客户端使用解决此问题,并且内置的包含功能。比如说, GET http://

我们通过ODataRESTAPI提供json对象。对象的大致结构如下所示

{ “财产1”:“价值1”, “物业2”:{ “InterestingProperty”:“/text1/part1/text2/part2” } }

“part1”和“part2”是我感兴趣的值,从后端开始,它们一起被索引

我需要设计一个列表API,它允许过滤在特定属性中同时包含part1和part2的对象。
有关于如何进行此操作的指导吗?

您可以在客户端使用解决此问题,并且内置的
包含
功能。比如说,

GET http://host/MyObjects?$filter=contains(Property2/InterestingProperty,'part1') and contains(Property2/InterestingProperty,'part2')
然而,这种方法允许误报;e、 例如,如果
InterestingProperty
的值类似于
/text1/part1/text2/part234

也许更好的方法是定义一个服务器端来进行自定义筛选。这将允许您对匹配
InterestingProperty
进行精细控制。在
MyService
命名空间中名为
CustomFilter
并绑定到
MyObjects
实体集的函数将按如下方式调用:

GET http://host/MyObjects/MyService.CustomFilter
如果您使用的是OData的.NET实现,那么有一种方法可以帮助您开始编写OData函数