【问题标题】:Restful URL design full text search on any specified field任意指定字段的Restful URL设计全文搜索
【发布时间】:2016-09-15 13:57:17
【问题描述】:

我的 api 应该支持指定字段的文本搜索。所以我在想什么样的 URL 样式能以最好的方式处理它。

以下模式,使用 "q" ,在许多博客和文档中都提到用于全文搜索,但我还需要指定字段名称:

GET /groups?q=bank+org

所以我想使用如下通配符:

GET /groups?name=*bank*&owner=*org*

我只是想知道这是否符合市场上的最佳做法?

谢谢

【问题讨论】:

    标签: rest restful-architecture restful-url


    【解决方案1】:

    Soheil,你的想法是对的。 “搜索”是一个“过滤参数”,它总是在查询字符串中。

    【讨论】:

      【解决方案2】:

      当发送将用于查询资源集合的参数时,您应该使用...猜猜看! 查询参数

      据我所知,没有官方文档说明这一点。这是一种常见的方法,并且被广泛采用。我知道的关于查询字符串的唯一官方文档RFC 3986。引用:

      3.4. Query

      查询组件包含非分层数据,以及 path component 中的数据,用于识别 URI 方案和命名机构范围内的资源 (如果有的话)。查询组件由第一个问题表示 标记 ("?") 字符并以数字符号 ("#") 字符结尾 或在 URI 的末尾。 [...]

      对于全文搜索,您可以选择您认为最方便的参数。你觉得q 好不好?去吧!但要为它提供一个很好的文档。

      【讨论】:

      • 感谢您的回复。我想我应该改写我的问题:) 我知道查询参数非常适合用于搜索集合。我在想是否使用通配符是对指定字段进行全文搜索的最佳方式,或者我需要像下面这样进行更改:GET /groups?name_like=bank&owner_like=org 而不是 GET /groups?name=*bank*&owner=*org* 谢谢
      • @SoheilTorkAbadi 使用通配符的方法对我来说很有意义。
      猜你喜欢
      • 2010-09-17
      • 2020-05-02
      • 1970-01-01
      • 2017-10-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多