我正在使用添加到快速 API 的 API 路由器在快速 API 中引发自定义异常。我正在定义异常类和处理程序,并使用以下代码添加它们。它以前可以工作,现在我不太确定是什么问题。添加了中间件,所以也许这就是问题所在?
app = FastAPI()
origins = [
"*", # Restrict these in the future?
]
app.include_router(memblock_router.router)
app.include_router(event_router.router)
app.add_exception_handler(UnauthorizedException, unauthorized_exception_handler)
app.add_exception_handler(InvalidParameterException, invalid_parameter_exception_handler)
app.add_exception_handler(DatabaseException, database_exception_handler)
app.add_exception_handler(ElasticsearchException, elasticsearch_exception_handler)
app.add_exception_handler(ParsingException, parsing_exception_handler)
app.add_exception_handler(ForbiddenErrorMessage, forbidden_error_message_exception)
app.add_exception_handler(UnsupportedErrorMessage, unsupported_message)
app.add_exception_handler(RequestValidationError, validation_exception_handler)
app.add_middleware(
CORSMiddleware,
allow_origins=origins,
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"],
)
我正在像这样定义异常和处理程序
class UnauthorizedException(Exception):
pass
def unauthorized_exception_handler(request: Request, exc: UnauthorizedException):
print(str(traceback.format_exc()))
return JSONResponse(status_code=status.HTTP_401_UNAUTHORIZED,
content={"error": "unauthorized"},
headers=get_response_headers())