prefect.server.utilities.server

Utilities for the Prefect REST API server.

Functions

method_paths_from_routes

method_paths_from_routes(routes: Sequence[BaseRoute]) -> set[str]

Generate a set of strings describing the given routes in the format: <method> <path>

For example, “GET /logs/“

Classes

PrefectAPIRoute

A FastAPIRoute class which attaches an async stack to requests that exits before a response is returned.

Requests already have request.scope['fastapi_astack'] which is an async stack for the full scope of the request. This stack is used for managing contexts of FastAPI dependencies. If we want to close a dependency before the request is complete (i.e. before returning a response to the user), we need a stack with a different scope. This extension adds this stack at request.state.response_scoped_stack.

Methods:

get_route_handler

get_route_handler(self) -> Callable[[Request], Coroutine[Any, Any, Response]]

PrefectRouter

A base class for Prefect REST API routers.

Methods:

add_api_route

add_api_route(self, path: str, endpoint: Callable[..., Any], **kwargs: Any) -> None

Add an API route.

For routes that return content and have not specified a response_model, use return type annotation to infer the response model.

For routes that return No-Content status codes, explicitly set a response_class to ensure nothing is returned in the response body.