gpt4 book ai didi

python - 如何根据 FastApi 中的另一个查询参数使查询参数成为必需的?

转载 作者:太空宇宙 更新时间:2023-11-04 09:31:34 25 4
gpt4 key购买 nike

我想根据 FastApi 中的另一个查询参数创建一个必需的查询参数

例如我有四个查询参数:commandstart_dateend_dateincrement

如果 command 等于“analyse”,则 end_date 必须是必需的。但是,如果 command 等于“add_working_days”,则不需要 end_date 但需要 increment。这可能吗?

这是我现在的代码:

import datetime
from fastapi import FastAPI, Query

app = FastAPI()

@app.get("/api/")
async def read_item(
start_date: str = Query(..., regex=r"[\d]{4}-[\d]{1,2}-[\d]{1,2}"),
end_date: str = Query(..., regex=r"[\d]{4}-[\d]{1,2}-[\d]{1,2}"),
command: str = None,
increment: int = None,
):
parsed_start_date = datetime.datetime.strptime(start_date, "%Y-%m-%d")
parsed_end_date = datetime.datetime.strptime(end_date, "%Y-%m-%d")
duration = parsed_end_date - parsed_start_date
return duration.days

最佳答案

我建议分离你的 api

import datetime
from fastapi import FastAPI, Query

app = FastAPI()

@app.get("/api/analyse")
async def read_item_for_analyse(
start_date: str = Query(..., regex=r"[\d]{4}-[\d]{1,2}-[\d]{1,2}"),
end_date: str = Query(..., regex=r"[\d]{4}-[\d]{1,2}-[\d]{1,2}"),
increment: int = None,
):
# do something

@app.get("/api/add_working_days")
async def read_item_for_add_working_days(
start_date: str = Query(..., regex=r"[\d]{4}-[\d]{1,2}-[\d]{1,2}"),
end_date: str = None,
increment: int = Query(..., title="Increase working days"),
):
# do something

它清晰易懂,或者继续你的风格并添加一些“if...else”就足够了。

关于python - 如何根据 FastApi 中的另一个查询参数使查询参数成为必需的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55555715/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com