REST API设计在涉及/product/{id}
或/products
(集合)等基本资源时似乎很简单。
但在现实世界中,您需要能够过滤您的收藏。例如,显示price > 500
和price < 1000
。
我想我的问题是如何将类似SQL的语法建模到REST API中,因此您可以使用MAX
,MIN
,AND
,{{1}进行复杂的集合过滤} {,OR
,>
,<
,<=
,>=
与sort by
和asc
?
如何使用查询字符串干净地表示该逻辑,因此您的API仍然可读并且看起来不像这样:
desc
如果您仔细查看上面的查询示例,它会使用数组将过滤器从客户端传输/编码到API,以便可以从查询字符串中轻松提取数据并在API端进行处理。同时它完全破坏了可读性,使API在没有SDK的情况下完全没用。
我努力在客户端上使用查询字符串构建复杂的集合过滤器并保持API干净之间找到合适的平衡点。