具有任意数量过滤条件的搜索服务的RESTful URL

时间:2009-12-01 16:26:40

标签: rest restful-url

我想构建一个RESTful Web服务,该服务实现了生物数据数据库的搜索界面。

典型的搜索请求可能涉及数据的十几个属性。 例如,按科学名称搜索,将搜索限制在小于100米的水深处。 我的第一直觉是拥有查询字符串中的所有属性 例如?检索类别= sciname&安培; sciname =翻车+翻车&安培; MAXDEPTH = 100安培; mindepth = 0

但是,查询字符串被视为非RESTful,请参阅http://rest.blueoxen.net/cgi-bin/wiki.pl?QueryStringsConsideredHarmful

我已经看过一些早期的SO讨论,例如RESTful URL design for search 我还不清楚这一点,所以我的问题是:

对于可能存在任意数字的搜索服务,是否存在可接受的RESTful URL标准或模式 过滤值?

1 个答案:

答案 0 :(得分:10)

在Web的REST风格中:

  • request-uri的路径组件标识特定资源。
  • request-uri的 query-string 组件标识在呈现该资源时所做的任何特定过滤器或更改。
  • 接受标头标识了一种特定的内容类型,其中应显示按指定过滤的给定资源。
  • Accept-Language 标头标识了一种特定语言,其中应显示按指定过滤的给定资源。

所以回答你的问题:

GET /species?searchType=sciname&sciname=mola+mola&maxdepth=100&mindepth=0

非常合适。