docs/v3/api-ref/python/prefect-server-utilities-server.mdx
prefect.server.utilities.serverUtilities for the Prefect REST API server.
method_paths_from_routes <sup><a href="https://github.com/PrefectHQ/prefect/blob/main/src/prefect/server/utilities/server.py#L15" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>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/"
PrefectAPIRoute <sup><a href="https://github.com/PrefectHQ/prefect/blob/main/src/prefect/server/utilities/server.py#L30" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>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 <sup><a href="https://github.com/PrefectHQ/prefect/blob/main/src/prefect/server/utilities/server.py#L42" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>get_route_handler(self) -> Callable[[Request], Coroutine[Any, Any, Response]]
PrefectRouter <sup><a href="https://github.com/PrefectHQ/prefect/blob/main/src/prefect/server/utilities/server.py#L59" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>A base class for Prefect REST API routers.
Methods:
add_api_route <sup><a href="https://github.com/PrefectHQ/prefect/blob/main/src/prefect/server/utilities/server.py#L68" target="_blank"><Icon icon="github" style="width: 14px; height: 14px;" /></a></sup>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.