所以我正在使用 Laravel 4 PHP 框架构建一个 RESTful(尽可能 RESTful)API。现在我有几十个 API 调用在工作,我有一个过程来做限制、排序和做简单的过滤。以下是其中一个调用的示例:
/api/v1/users?limit=10&offset=10&firstName=John&order[]=createdTimestamp desc
这将返回第 11 到第 20 个用户,其名字为 John,按 createdTimestamp 降序排列。这里的简单过滤只能进行完全匹配(=)。现在,我还希望能够通过 REST API 提供更复杂的过滤系统,该系统支持指定相等匹配类型的能力,他们可以执行 != 或 > 或 LIKE 等...问题是我不知道我是否能够通过普通查询字符串提供这种类型的过滤。
通过 REST API 提供这种复杂过滤的最佳方式是什么?即使它不是“真正的” RESTful,通过 POST 仍然被认为是最好的方式(即使这可以防止用户尝试运行超过某些浏览器具有的 URI 字符长度限制的长查询的问题)?