我需要在REST API中支持OR语句,而且我不知道如何构建正确的查询字符串。 也许,这样的事情?
或者可能存在标准解决方案?
答案 0 :(得分:1)
选项1:您可以拥有一个代表所有值的字符串。在代码中,你将根据某些分隔符将字符串分开。
key=val1,val2,val3
然后说(伪代码):var vals = explode( GETPARAMS['key'] , ',' )
选项2:您可以在网址参数中使用数组表示法:
key[0]=val1&key[1]=val2&key[2]=val3
并且在代码中,key
的值将是一个数组:array( val1, val2, val3 )
答案 1 :(得分:0)
您可以选择允许使用复杂过滤器的OpenData filter。
示例中的端点如下所示:
/rest?$filter=author eq Obama and author eq McCain
/rest?$filter=author eq Obame or author eq McCain
如果您使用的是Asp.NET Web-Api,则可以使用Microsoft ASP.NET Web API OData。
Disclamer:在Web-Api中使用OData使用Entity Framework(或使用IQueryable的东西)