URL查询字符串中的OR语句

时间:2013-10-11 11:05:52

标签: http rest get query-string

我需要在REST API中支持OR语句,而且我不知道如何构建正确的查询字符串。 也许,这样的事情?

  • / rest?author = Obama& author = McCain
  • /休息笔者=奥巴马|麦凯恩

或者可能存在标准解决方案?

2 个答案:

答案 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的东西)