【问题标题】:OR statement in URL query stringURL 查询字符串中的 OR 语句
【发布时间】:2013-10-11 11:05:52
【问题描述】:

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

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

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

【问题讨论】:

    标签: http rest get query-string


    【解决方案1】:

    选项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 )

    【讨论】:

      【解决方案2】:

      你可以选择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

      声明:在 Web-Api 中使用 OData 可以使用实体框架(或使用 IQueryable 的东西)

      【讨论】:

      • 这看起来像是在过滤器变量中放置了一个 sql-where-clause。
      猜你喜欢
      • 1970-01-01
      • 2023-03-04
      • 1970-01-01
      • 1970-01-01
      • 2017-01-04
      • 2013-08-18
      • 1970-01-01
      • 2014-07-02
      • 2017-06-10
      相关资源
      最近更新 更多