Как я могу использовать дополнительные параметры в fast api?

#python #fastapi

Вопрос:

Я прочитал документацию, и это, похоже, не работает для меня. Я последовал за этим доком. Но я не уверен, связано ли это с тем, что я пытаюсь сделать, я думаю, что этот документ предназначен для передачи таких запросов — site.com/endpoint?keyword=test

Вот моя цель: api.site.com/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 будет установлено это значение.

Могу ли я что-нибудь сделать?

Комментарии:

1. Я не знаю, поможет ли это. Но пробовали ли вы это ?. Это то, что я нашел в тестовом примере, а не в документации.

2. @AbdulNiyasPM Спасибо за ссылку. Я посмотрел, и это было то, что я пытался сделать раньше. Я принял ответ ниже, который сработал.

Ответ №1:

Насколько я знаю, это не будет работать так, как вы это устроили. Хотя вы можете попробовать что-то вроде этого:

 @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 обработает запрос.

Не уверен, что это работает так, как вы хотите, но в данный момент я не могу это проверить. Может быть, позже. Дай мне знать.

Комментарии:

1. Я проверю это..если это сработает, то это потрясающе..если это не сработает..вы все еще потрясающи за помощь!