我正在学习FastAPI(并且非常喜欢它),所以很可能我做错了什么。但这是我的问题:
在下面的代码片段中,如果没有用户,我会创建一个新用户。
代码运行正常,但我遇到的问题是错误处理。错误被正确地推送到FastAPI的内部文档或像Postman这样的API客户端,但未返回给实际使用的客户端或命令行。
如果我使用自动生成的FastAPI文档(或Postman)并通过该方式监控响应,我会得到我所期望的错误。 但是当我查看我在客户端端(Vue)接收到的内容或者
我做错了什么? 我该怎么做才能确保返回完整的
在下面的代码片段中,如果没有用户,我会创建一个新用户。
代码运行正常,但我遇到的问题是错误处理。错误被正确地推送到FastAPI的内部文档或像Postman这样的API客户端,但未返回给实际使用的客户端或命令行。
@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)并通过该方式监控响应,我会得到我所期望的错误。 但是当我查看我在客户端端(Vue)接收到的内容或者
uvicorn
服务器记录的内容时,它并不包含那些信息:
如您所见,它只是显示“Bad Request”,而不是响应JSON字典{"detail": "Username 'miketest' already registered"}
。
我做错了什么? 我该怎么做才能确保返回完整的
HTTPException
信息? 我很确定问题出在FastAPI端,因为客户端收到的正是服务器输出的内容。