当前位置: 首页 > 知识库问答 >
问题:

在fast api中,如何使用可选参数?

令狐晟
2023-03-14

我已经通读了文档,但这似乎对我不起作用。我跟踪了这个医生。但我不确定这是否与我要做的事情有关,我认为这个文档是用于传递这样的查询- site.com/endpoint?关键字=测试

这是我的目标:api.site.com/test/(optional_field)

因此,如果有人转到“测试”endpoint,它会将可选字段默认为一个参数,但如果他们在那里添加一些内容,它会将其作为输入。

也就是说,这是我的代码:

    @app.get("/company/{company_ticker}/model/{financialColumn}", dependencies=[Depends(api_counter)])
    async def myendpoint(
        company_ticker: str,
        financialColumn: Optional[str] = 'netincome',
        ..

        myFunction(company_ticker, financialColumn)

我想做的是,如果他们只是在没有可选标志的情况下转到endpoint,那么它默认为“netincome”,但如果他们添加了一些内容,那么financialColumn将设置为该值。

有什么我能做的吗?

共有1个答案

徐涵亮
2023-03-14

据我所知,它不会像你设置的那样工作。尽管你可以尝试这样的事情:

@app.get("/company/{company_ticker}/model/", dependencies=[Depends(api_counter)])
@app.get("/company/{company_ticker}/model/{financialColumn}", dependencies=[Depends(api_counter)])
    async def myendpoint(
        company_ticker: str,
        financialColumn: Optional[str] = 'netincome'
        ):

        myFunction(company_ticker, financialColumn)

这样,如果有人转到"/公司/{company_ticker}/模型/""/公司/{company_ticker}/模型/blabla"函数myendpoint将处理请求。

不确定它是否如您所愿,但目前我无法对其进行测试。也许以后。让我知道。

 类似资料:
  • 我不明白 FastAPI 中的可选查询参数。它与默认值为 的默认查询参数有何不同? 在下面的示例中,arg1和arg2有什么区别?在该示例中,arg2是一个可选的查询参数,如上面的链接所述。

  • 我有一个使用FastAPI部署的机器学习模型,但问题是我需要该模型采用两体参数 当我试图发送输入参数时,我在邮递员中遇到了一个错误,请参见下面的图片,

  • 我的REST web服务中有一个函数使用GET方法,它有两个可选参数。 我试图在Swagger中定义它,但在将设置为后,我遇到了一个错误,不是一个有效的参数定义。 我发现,如果将值设置为,错误就会消失。下面是我的Swagger代码的示例。 我在body或Query中的参数中没有体验到这种情况。我认为这个问题只与PATH中的参数有关。我在swagger规范文件中也找不到任何解决方案。

  • 问题内容: 在PHP手册中,为了显示具有可选参数的函数的语法,它们在每组相关的可选参数周围使用方括号。例如,对于该功能,手册内容如下: 哪里是可选参数,当留空时,默认为函数的返回值。 在PHP中定义自定义函数时,如何创建像这样的可选参数? 问题答案: 与手册非常相似,在参数的定义中使用等号():

  • 让我们考虑一下下面的课程 让我们考虑一下这个类有一个可选对象,比如: 是否可以在对象上调用方法,而无需检查是指完整的对象还是仅指空的对象()。比如: 不幸的是,这段代码无法编译。如何做到这一点?

  • 问题内容: 我解释自己 我有一个填写查询的表格(例如): 但只有“ id”为必填项,所有其他参数均为​​可选。如何填写(或重新创建)该查询的预声明? 问题答案: 您将不得不使用多个准备好的语句,或者只是在运行时创建一条语句,检查您拥有哪些参数。 像这样: 更新/警告 :不要直接将参数值添加到查询字符串中,而应使用等。如上所示,查询字符串应仅包含值的占位符(例如),以防止SQL注入攻击。 我的意思是