【问题标题】:'OR' with GET url parameters带有 GET url 参数的“或”
【发布时间】:2018-05-25 23:58:44
【问题描述】:

我有一个 GET API 网址,例如:/api/countries
我想使用名称和代码等多个参数从中进行搜索...为此,我将执行/api/countries?name=pak&code=92
但是如果我想在 url 参数中使用 OR 怎么办? /api/countries?name=pakcode=92

【问题讨论】:

  • 在 URL 中使用or 的目的是什么?将使用它而不是&
  • 没错,我想像api/countries?name=pakORname=can一样使用相同的变量两次

标签: api url hyperlink get


【解决方案1】:

您所描述的不是常规的 API 调用。 你可以通过两种方式解决这个问题

  • 在实现 or 语句的控制器中创建逻辑
  • 实施 ODATA REST 协议。

我更喜欢 ODATA。实体框架对此提供支持,您甚至可以在自己创建的列表中实现此功能。

在 ODATA 中,您可以使用过滤器表达式: 过滤器=名称 eq 610 或代码 eq 615

https://msdn.microsoft.com/en-us/library/hh169248(v=nav.90).aspx

【讨论】:

  • 那么你只是在传递参数。在查询字符串中设置 or 语句是 odata 过滤器的一部分。如果你以这种方式实现它,你应该记录你的 api
【解决方案2】:

如果您按照问题中的说明使用 OR,那么它将不起作用(name 将包含值 pakORcode=92)。如果您会考虑这样做,那么您可以使用 explode 在每个 OR 周围拆分成键值对。

您可能还有第三个变量method。你可以设置成AND或者OR,那么你知道用什么方法了吗?

希望对你有帮助

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-04-01
    • 2023-04-07
    • 2017-02-22
    • 1970-01-01
    • 2021-10-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-19
    相关资源
    最近更新 更多