在 fast api 中如何使用可选参数?
In fast api how can I use optional parameters?
我通读了文档,这似乎对我不起作用。我关注了这个doc。但我不确定它是否与我正在尝试做的事情有关,我认为该文档用于传递这样的查询 - site.com/endpoint?keyword=test
这是我的目标:api.site.com/test/(optional_field)
因此,如果有人访问 'test' 端点,那么它会将可选字段默认为参数,但如果他们在那里添加了一些内容,那么它会将其作为输入。
话虽如此,这是我的代码:
@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)
我想做的是,如果他们只是在没有可选标志的情况下转到端点,那么它默认为 'netincome',但如果他们添加了一些东西,那么 financialColumn 将设置为该值。
有什么我可以做的吗?
据我所知,它不会像您设置的那样工作。虽然你可以尝试这样的事情:
@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/{company_ticker}/model/"
或 "/company/{company_ticker}/model/blabla"
,函数 myendpoint
将处理请求。
不确定它是否如您所愿,但目前我无法对其进行测试。也许以后。让我知道。
我通读了文档,这似乎对我不起作用。我关注了这个doc。但我不确定它是否与我正在尝试做的事情有关,我认为该文档用于传递这样的查询 - site.com/endpoint?keyword=test
这是我的目标:api.site.com/test/(optional_field)
因此,如果有人访问 'test' 端点,那么它会将可选字段默认为参数,但如果他们在那里添加了一些内容,那么它会将其作为输入。
话虽如此,这是我的代码:
@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)
我想做的是,如果他们只是在没有可选标志的情况下转到端点,那么它默认为 'netincome',但如果他们添加了一些东西,那么 financialColumn 将设置为该值。
有什么我可以做的吗?
据我所知,它不会像您设置的那样工作。虽然你可以尝试这样的事情:
@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/{company_ticker}/model/"
或 "/company/{company_ticker}/model/blabla"
,函数 myendpoint
将处理请求。
不确定它是否如您所愿,但目前我无法对其进行测试。也许以后。让我知道。