【发布时间】:2020-03-09 23:40:10
【问题描述】:
如何为 LoopBack 上的“LIKE”查询键入 REST API?
根据 Loopback 文档, 我已经这样尝试了:
ProductDealers?filter={"where":{"DealerCode":"T001","Active":"true","SKU":{"like":"1000.*"}}}
但是什么也没发生, 请帮帮我?
【问题讨论】:
如何为 LoopBack 上的“LIKE”查询键入 REST API?
根据 Loopback 文档, 我已经这样尝试了:
ProductDealers?filter={"where":{"DealerCode":"T001","Active":"true","SKU":{"like":"1000.*"}}}
但是什么也没发生, 请帮帮我?
【问题讨论】:
应该是这样的
Post.find({
where: {
title: {
like: 'someth.*',
options: 'i'
}
}
});
对于 api 调用
?filter={"where":{"title":{"like":"someth.*","options":"i"}}}
请查看此PR 了解更多信息
【讨论】:
我找到了答案,我不知道为什么当我使用括号“{}”时它不能工作 但是当我使用 " [] " 时,效果很好,就像
Products?filter[where][Name][like]=%25" + valFilter + "%25&filter[where][Active]=1&filter[where][Deleted]=0"
干杯!
【讨论】:
有点晚了,但我实际上是在寻找其他东西后发现的。
大多数人的问题是,有一种叫做 Url Encoding.
在这里阅读更多: https://en.wikipedia.org/wiki/Percent-encoding
因此,如果您像上面的示例一样对 json 过滤器进行字符串化,请确保将字符串化对象放入 Uri 编码器中,这将确保您得到您期望的结果并控制值的编码
let t_filter = {
where: {
title: {
like: 'someth.*',
options: 'i'
}
}
};
let result = encodeURI(JSON.stringify(t_filter));
然后将结果发送到您的 Api 而不仅仅是字符串化对象
【讨论】: