1

Fast API に追加された API Router を使用して、Fast 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())
4

1 に答える 1