Я просто изучаю FastAPI (и люблю его), поэтому вполне вероятно, что я делаю что-то не так. Но вот моя проблема:
В приведенном ниже фрагменте кода я создаю нового пользователя, если пользователя уже нет.
Код работает нормально, но у меня проблемы с обработкой ошибок. Ошибки правильно передаются во внутренние документы FastAPI или в клиент API, такой как Postman, но не обратно в фактический клиент, который я использую, или в командную строку.
@app.post("/users/", response_model=schemas.User)
def create_user(user: schemas.UserCreate, db: Session = Depends(get_db)):
db_user = crud.get_user_by_username(db, username=user.username)
if db_user:
raise HTTPException(
status_code=400, detail=f"Username '{user.username}' already registered"
)
return crud.create_user(db=db, user=user)
Если я использую автоматически сгенерированные документы FastAPI (или Postman) и отслеживаю ответ таким образом, я получаю ожидаемую ошибку:
But when I look at what I am receiving at the client end (Vue) or what the uvicorn
server is logging, it does not contain that information:
Регистрируется неверный ответ об ошибке
Как видите, он просто говорит Bad Request
вместо ответа JSON dict {"detail": "Username 'miketest' already registered"}
Что я делаю не так? Что я могу сделать, чтобы убедиться, что возвращается полная информация HTTPException
? Я почти уверен, что проблема связана с FastAPI, потому что клиент получает именно то, что выводит сервер.