Можно ли получить параметры запроса с помощью fastapi, если имя параметра является ключевым словом python?

#python #keyword #fastapi

#python #ключевое слово #fastapi

Вопрос:

У меня возникла следующая проблема.

Мы разрабатываем нашу собственную платформу тестирования, и для целей тестирования мне нужно создать заглушку для одного из наших сервисов. Идея состоит в том, чтобы реализовать его с помощью FastApi, однако я столкнулся с проблемой. Строка запроса к этой службе выглядит следующим образом:

 xrRequestTmpl = `%s/v2/click/rates?from=%samp;to=%samp;ticks=trueamp;ts=%v`
 

Как вы можете видеть, одним из параметров запроса является ‘from’, что является ключевым словом python, поэтому я не могу использовать

 from fastapi import FastApi

xr = FastAPI()
@xr.get('/v2/click/{path}')
def rates(path, from, to, ticks, ts):
    pass
 

python, очевидно, интерпретирует «from» как ключевое слово, связанное с импортом, и не допускает такого синтаксиса.
К сожалению, я абсолютно не могу изменить синтаксис строки запроса, поскольку он уже интегрирован в prod env, поэтому я должен каким-то образом получить эти параметры.

Я был бы очень благодарен за рабочий пример кода или, по крайней мере, за подсказку. Использование другой библиотеки (не fastapi) является действительно менее предпочтительным решением из-за специфики указанной среды тестирования.

Ответ №1:

Да, это возможно, вы можете использовать псевдоним.

 from fastapi import FastAPI

app = FastAPI()

@app.get('/my_path')
def rates(_from: str = Query(..., alias="from")):
    pass