python - 如何在 FastAPI 中将查询参数的模式编写为变量
问题描述
我有一个 get 函数,它接受多个查询参数,可能如下所示:
def get(
key: Optional[str] = "key"
value: Optional[str] = "value"
param1: Optional[int] = -1
)
我想做的是,我想把这些参数定义放在一个单独的变量中。有可能做这样的事情吗?
param_definition = { # some struct here, or maybe a Model class
key: Optional[str] = "key"
value: Optional[str] = "value"
param1: Optional[int] = -1
}
def get(*params: param_definition):
...
这可以做到吗?如果没有,这里有什么类似的和更可维护的东西吗?
解决方案
您可以将 Pydantic 模型与Depends()
类作为
from fastapi import FastAPI, Depends
from pydantic import BaseModel
from typing import Optional
app = FastAPI()
class MyParams(BaseModel):
key: Optional[str] = "key"
value: Optional[str] = "value"
param1: Optional[int] = -1
@app.get("/")
def my_get_route(params: MyParams = Depends()):
return params
这也会自动为我们生成API 文档。
推荐阅读
- python - 如何使用 Tensorflow 选择多行?
- c++ - 在 C++ 节点插件中使用 Node::Buffers
- python - 转换成 utf16
- c++ - 编译器难题,GNU G++17 7.3.0 与 GNU G++11 5.1.0。代码部队
- c# - Unity3D 标准资产脚本无法正常运行
- python - 从每个用户帖子中提取 Instagram 评论
- android - RxBinding4 问题,不确定如何实现对浮动操作按钮的点击
- php - 无法使用php在webform的下一页上传递用户的输入值
- python - sk学习,当我要预测的数据与我现在拥有的数据分布不同时该怎么办
- linux - 为什么 perf 不报告“dcache-store-misses”?