我正在尝试为REST创建更高级的查询机制.假设我有以下内容:
GET /data/users
Run Code Online (Sandbox Code Playgroud)
它返回一个用户列表.然后过滤返回的用户,例如我会说:
GET /data/users?age=30
Run Code Online (Sandbox Code Playgroud)
获取30岁用户的列表.现在假设我想要30到40岁的用户.我想基本上拥有一组可重复使用的运算符,例如:
GET /data/users?greaterThan(age)=30&lessThan(age)=40
Run Code Online (Sandbox Code Playgroud)
bigThan和lessThan可以在其他数字,日期等字段上重复使用.这也允许我添加其他运算符(包含,开头,结尾等).我是一个REST菜鸟,所以我不确定这是否违反了REST遵循的任何核心原则.有什么想法吗?
或者,使用可选参数“minAge”和“maxAge”可能会更好。
替代方案 2:对参数值进行编码以指示要执行的测试:不等式、模式匹配等。
无论您对复杂的布尔表达式做什么,这都会变得混乱。在某些时候,您几乎想为查询描述本身创建一个文档格式,但很难再将其视为“GET”。
归档时间: |
|
查看次数: |
348 次 |
最近记录: |