6

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

  • /rest?author=奥巴马&author=麦凯恩
  • /rest?author=奥巴马|麦凯恩

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

4

2 回答 2

2

选项 1:您可以有一个代表所有值的字符串。在代码中,您将根据一些分隔符将字符串分开。

key=val1,val2,val3

让我们说(在伪代码中):var vals = explode( GETPARAMS['key'] , ',' )

选项 2:您可以在 url 参数中使用数组表示法:

key[0]=val1&key[1]=val2&key[2]=val3

在代码中, 的值key将是一个数组:array( val1, val2, val3 )

于 2013-10-11T21:28:33.250 回答
0

您可以选择允许复杂过滤器的OpenData 过滤器。

您示例中的端点如下所示:

/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 使用实体框架(或使用 IQueryable 的东西)

于 2013-10-11T12:17:51.790 回答