使用嵌套查询 REST API 获取请求
Posted
技术标签:
【中文标题】使用嵌套查询 REST API 获取请求【英文标题】:GET request with nested query REST API 【发布时间】:2022-01-16 13:08:44 【问题描述】:从我的 MongoDB 数据库中,我正在查询数据。为此,在我的后端,我通过这个来获取数据,
const products = await Product.find(
'backCamera.sensor.megaPixels': $gte: 8
)
如何从前端发送 GET 请求来满足这个查询?
我试过这种方法,但没有用
fetch('http://localhost:5000/api/v1/products?backCamera.sensor.megaPixels[gte]=8')
.then(response => response.json())
.then(data => console.log(data));
然后尝试在后端使用查询参数但没有成功。
【问题讨论】:
12 是干什么用的?你能在后台显示控制台记录请求参数的代码吗? 对不起,现在编辑..你可以重新检查 【参考方案1】:如果你想用 url 动态地显示整个东西,这意味着参数 backCamera.sensor.megaPixels
是动态的,你可以这样去做:
// Frontend
fetch('http://localhost:5000/api/v1/products?product=backCamera.sensor.megaPixels&minimum=8')
.then(response => response.json())
.then(data => console.log(data));
// Backend
// Retrieve the params product and minimum from the Url
const products = await Product.find(
[product]: $gte: minimum
)
【讨论】:
非常感谢兄弟【参考方案2】:首先,您不需要将来自URL的查询匹配到后端的查询,也不需要直接发送。因此,您不需要理由去做api/v1/products?backCamera.sensor.megaPixels[gte]=8
之类的事情。在这种情况下,我会传递类似api/v1/products?backCamSensorMinPx=8
的内容,然后我会从 req.query 中提取后端数据并对其进行验证。它将解决一些安全问题(如果您使用 SQL),并将遵循一些分离后端核心逻辑和数据库实现的良好实践。
【讨论】:
以上是关于使用嵌套查询 REST API 获取请求的主要内容,如果未能解决你的问题,请参考以下文章
使用 Django 的 ORM 和 Django Rest Framework 序列化嵌套关系的查询集的正确方法?