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

Los*_*oul 4 python fastapi

我已经阅读了文档,这似乎对我不起作用。我关注了这个医生。但我不确定它是否与我想做的事情有关,我认为这个文档是为了传递这样的查询 -site.com/endpoint?keyword=test

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

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

话虽如此,这是我的代码:

    @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)
Run Code Online (Sandbox Code Playgroud)

我想做的是,如果他们只是转到没有可选标志的端点,那么它默认为“净收入”,但如果他们添加一些内容,那么 FinancialColumn 将设置为该值。

有什么我可以做的吗?

lsa*_*abi 5

据我所知,它不会按照你设置的方式工作。虽然你可以尝试这样的事情:

@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)
Run Code Online (Sandbox Code Playgroud)

这样,如果有人去"/company/{company_ticker}/model/""/company/{company_ticker}/model/blabla"该函数myendpoint将处理该请求。

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