Restful API 中的搜索与过滤

Searching versus Filtering in Restful API

我已经开始阅读一些关于 API 设计的参考资料(亚马逊、微软、Github、Apigee..),我遇到了这句话:

"A better API must implement search and filter functionality." (something like that ..)

没搞清楚:

在 Restful 上下文中过滤和搜索有什么区别?

亲切

搜索完全是关于 API 消费者传递的 查询 。类似于在用户上下文中传递 ?q=rafael 以查找与该名称匹配的所有用户。另一方面,过滤是根据资源的其他属性 缩小 那些结果。类似于 ?q=rafael&age=23.

现在回答这个问题可能为时已晚,但搜索与过滤有点不同。过滤器用于缩小具有精确匹配的结果集,而搜索使用其权重。 例如,如果我想在印度找到用户,那么我们可以使用国家过滤器并缩小结果集。但同时我想看看这个结果集中有多少个Rafael。 搜索可能会返回 Rafaela、rafaelb 或 Rafael,但过滤器将保留准确的国家 Indaa,而不是 Indiaa 或 Indiab。

这是两者的基本区别。