Как отладить ошибку генерации OpenAPI FastAPIPython

Программы на Python
Ответить
Anonymous
 Как отладить ошибку генерации OpenAPI FastAPI

Сообщение Anonymous »

Я потратил некоторое время на исправление этой ошибки, но безуспешно.

Файл "C:\Users\ebara.conda\envs\asci\lib\site-packages\fastapi\openapi\utils.py", строка 388, в get_openapi
flat_models=flat_models, model_name_map=model_name_map


Файл «C:\Users\ebara.conda\envs\asci\lib\site-packages\fastapi\utils.py», строка 28, в get_model_definitions
model_name = model_name_map[model]


KeyError:

Проблема в том, что я пытаюсь создать проект с аутентификацией пользователя из формы OpenAPI для создания новых пользователей в базе данных.
Я использовал серверную часть этого проекта шаблона https://github.com/tiangolo/full-stack- ... postgresql
Все работает, кроме аутентификации, как здесь.

Код: Выделить всё

@router.post("/login/access-token", response_model=schemas.Token)
def login_access_token(
db: Session = Depends(deps.get_db), form_data: OAuth2PasswordRequestForm = Depends()) -> Any:
Когда я добавляю эту часть form_data: OAuth2PasswordRequestForm = Depends() - и перехожу на страницу /docs - появляется эта ошибка (Не удалось загрузить определение API. Ошибка выборки. Внутренняя ошибка сервера /openapi.json)
Изображение
.
Сам сервер работает в обычном режиме, но загрузить открытый API не может. Если я удалю вышеупомянутую часть formdata - все будет работать гладко, но без авторизации. Я пытался отладить его, но безуспешно. Я думаю, что это может быть связано с графом зависимостей или какими-то проблемами при запуске, но не знаю, как это отследить.
Вот полный рабочий пример, который воспроизводит ошибку. Ссылка указывает на код, который вызывает проблему. Если вы закомментируете строки 18-39 - документы откроется без проблем.
https://github.com/BEEugene/fastapi_err ... s/login.py
Есть идеи, как отладить или почему возникает эта ошибка?

Подробнее здесь: https://stackoverflow.com/questions/702 ... tion-error
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»