SlackRouteErrorHandler#

class gafaelfawr.slack.SlackRouteErrorHandler(path, endpoint, *, response_model=<fastapi.datastructures.DefaultPlaceholder object>, status_code=None, tags=None, dependencies=None, summary=None, description=None, response_description='Successful Response', responses=None, deprecated=None, name=None, methods=None, operation_id=None, response_model_include=None, response_model_exclude=None, response_model_by_alias=True, response_model_exclude_unset=False, response_model_exclude_defaults=False, response_model_exclude_none=False, include_in_schema=True, response_class=<fastapi.datastructures.DefaultPlaceholder object>, dependency_overrides_provider=None, callbacks=None, openapi_extra=None, generate_unique_id_function=<fastapi.datastructures.DefaultPlaceholder object>)#

Bases: APIRoute

Custom fastapi.routing.APIRoute that reports exceptions to Slack.

Dynamically wrap FastAPI route handlers in an exception handler that reports uncaught exceptions (other than fastapi.HTTPException, fastapi.exceptions.RequestValidationError, starlette.exceptions.HTTPException, and exceptions inheriting from SlackIgnoredException) to Slack.

Examples

Specify this class when creating a router. All uncaught exceptions from handlers managed by that router will be reported to Slack, if Slack alerts are configured.

router = APIRouter(route_class=SlackRouteErrorHandler)

Notes

Based on this StackOverflow question.

Parameters:

Methods Summary

get_route_handler()

Wrap route handler with an exception handler.

Methods Documentation

get_route_handler()#

Wrap route handler with an exception handler.

Return type:

Callable[[Request], Coroutine[Any, Any, Response]]