我们通过OData REST API提供json对象。对象的粗略结构如下所示
{ " Property1":" Value1", " Property2":{ " InterestingProperty":" / text1 / part1 / text2 / part2" } }
价值观" part1"和"第2部分"是我感兴趣的人,从后端他们被编入索引。
我需要设计List API,它允许过滤包含该特定属性中part1和part2的对象。 关于如何解决这个问题的任何指导?
答案 0 :(得分:1)
您可以使用$filter
query option和内置contains
功能在客户端解决此问题。例如,
GET http://host/MyObjects?$filter=contains(Property2/InterestingProperty,'part1') and contains(Property2/InterestingProperty,'part2')
然而,这种方法确实存在误报;例如,如果InterestingProperty
的值类似于/text1/part1/text2/part234
。
也许更好的方法是定义服务器端OData function来进行自定义过滤。这将允许您对InterestingProperty
的匹配进行细粒度控制。 CustomFilter
命名空间中名为MyService
且绑定到MyObjects
实体集的函数将按如下方式调用:
GET http://host/MyObjects/MyService.CustomFilter
如果您正在使用OData的.NET实现,那么可以使用tutorial来开始编写OData函数。