Exceptions API#
Public exception hierarchy for FastAPI-Restly.
Two families:
Configuration-time errors (
RestlyError/RestlyConfigurationError) raised when the framework is misused before/at setup.Request-time HTTP errors (
NotFound/Forbidden/Conflict/BadQueryParam) raised while handling a request. These subclassfastapi.HTTPException, so the default responses are identical to raisingHTTPExceptiondirectly – but a user canapp.add_exception_handler(fr.exc.NotFound, ...)to reshape Restly’s errors distinctly (e.g. into RFC 7807 problem+json).
- exception fastapi_restly.exc.BadQueryParam(detail: object | None = None, **kwargs: object)#
Bases:
RestlyHTTPErrorHTTP 400 – an invalid filter/sort/pagination query parameter.
- exception fastapi_restly.exc.Conflict(detail: object | None = None, **kwargs: object)#
Bases:
RestlyHTTPErrorHTTP 409 – the request conflicts with the current resource state.
- exception fastapi_restly.exc.Forbidden(detail: object | None = None, **kwargs: object)#
Bases:
RestlyHTTPErrorHTTP 403 – the request is not authorized.
- exception fastapi_restly.exc.NotFound(detail: object | None = None, **kwargs: object)#
Bases:
RestlyHTTPErrorHTTP 404 – the requested resource does not exist (or is not visible).
- exception fastapi_restly.exc.RestlyConfigurationError#
Bases:
RestlyErrorRaised when Restly is used before required configuration is available.
- exception fastapi_restly.exc.RestlyError#
Bases:
ExceptionBase class for FastAPI-Restly framework errors.
- exception fastapi_restly.exc.RestlyHTTPError(detail: object | None = None, **kwargs: object)#
Bases:
HTTPExceptionBase for Restly’s request-time HTTP errors. Subclasses set a status.
- exception fastapi_restly.exc.RestlyMisuseWarning#
Bases:
UserWarningEmitted at view registration for common framework-misuse patterns.
Opt-in: enable with
fr.configure(warn_on_misuse=True). When a view class is registered viainclude_view, the framework then flags the three dominant misuses – overriding a route shell (<verb>_endpoint) where a business-verb override was meant, callingsession.commit()directly in a view method, and hand-rolling a CRUD route set on a bareViewinstead of subclassingRestView/AsyncRestView.
- exception fastapi_restly.exc.RestlyUncommittedChangesWarning#
Bases:
UserWarningEmitted when a request finishes with uncommitted changes in the session.
The write handlers own the commit, so a custom write route that flushes (e.g. via
save_object) but never commits has its changes silently rolled back when the session closes. The fix is almost always to commit: bracket the mutation withwrite_action(...)(the framework then runs the commit), or reuse ahandle_<verb>handler. A route that intentionally rolls back (a validate-then-rollback dry run) can suppress the warning for just that request withsession.info["_fr_suppress_uncommitted"] = True.
See also
Shape Error Responses — which exception to raise where, and app-wide error envelopes.