【发布时间】:2023-02-14 04:59:54
【问题描述】:
我有一个接收端点和用于从 MongoDB _id 获取数据的 id 字段:
from fastapi import APIRouter
from bson import ObjectId
router = APIRouter()
@router.get("/get-data")
async def get_strategies(order_id: ObjectId):
return Manager().get_data(order_id)
我想验证 order_id 是否与 ObjectId 一样有效,如果稍后在函数内部,order_id 是 str 或 ObjectId 没关系。
我怎样才能做到这一点? 感谢帮助!
【问题讨论】:
-
您请求的 ObjectId 是什么样的?您是要验证它是否符合您期望的 MongoDB objectId 的外观,还是要确定它是否也是有效的
order_id? (后者是完全合理的,例如通过order: Depends(order_from_param_order_id)将为您提供非常可组合的视图功能) -
@MatsLindh 感谢回答。
ObjectId是从bson包导入的类,我认为是 mongodb 用于_id字段(每个文档的主键)的同一个类。你order: Depends(order_from_param_order_id)的方法看起来也不错,我试试 -
我不确定如何通过 JSON 正文/url 参数从二进制表示形式获取 ObjectId,因此这取决于您要提交的值类型。如果可能,您可以使用依赖项将任何输入字符串转换为 ObjectId。
-
@MatsLindh 也许我解释错了,在这种情况下我深表歉意。英语不是我的母语。我将我正在寻找的解决方案留在下面