我可以通过调用从json-server(假服务器)获取数据:
http://localhost:3000/posts?title_like=head&comments_like=today
这将返回标题为“head”的记录,
AND
评论为“today”。
如果我想要的不是 AND
而是 OR
运算符怎么办?
实现路由的方法有多种,就像 @lewis 提到的那样。如果您还没有实现路由,也许这是一个很好的起点(如果您必须在 URL 中提供输入)。
“...title_like=head&comments_like=today”只是一个 URL,我不认为 URL 是指定“OR”逻辑的最佳位置。应由您的服务器端代码决定是否在提供的参数之间使用“AND”或“OR”逻辑。
如果您最终使用了上面的 URL,并且服务器端代码实际上实现了“OR”逻辑,您的客户可能会感到困惑,因为他们可能期望“AND”行为,特别是如果他们没有阅读您的文档。
另一种选择是在 body 参数中提供输入,而不是 URL。主体参数可以并且用于“AND”和“OR”逻辑。这样,您还可以与用户沟通,正文中的两个值都将用于“OR”逻辑,而不是“AND”逻辑(同样,如果您的客户确实阅读了文档)
如果它在同一字段上,您可以使用正则表达式
GET /posts?title_like=(?:hello|world)
据我所知,如果它属于类似的领域,那么您必须先提出 2 个请求,然后再加入它们。不久前,我出于不同的目的制作了一个fork,但它可以帮助你实现你想要的:
GET /posts?q=search-text&attr=fieldName1,fieldName2,fieldName3,etc
这将在指定字段内搜索
search-text
。