路由器

class litestar.router.Router

基类:object

Litestar 路由类。 Router 实例用于在共享的路径片段下对控制器、路由器和路由处理函数进行分组。

__init__(path: str, *, after_request: AfterRequestHookHandler | None = None, after_response: AfterResponseHookHandler | None = None, before_request: BeforeRequestHookHandler | None = None, cache_control: CacheControlHeader | None = None, dependencies: Dependencies | None = None, dto: type[AbstractDTO] | None | EmptyType = _EmptyEnum.EMPTY, etag: ETag | None = None, exception_handlers: ExceptionHandlersMap | None = None, guards: Sequence[Guard] | None = None, include_in_schema: bool | EmptyType = _EmptyEnum.EMPTY, middleware: Sequence[Middleware] | None = None, opt: Mapping[str, Any] | None = None, parameters: ParametersMap | None = None, request_class: type[Request] | None = None, response_class: type[Response] | None = None, response_cookies: ResponseCookies | None = None, response_headers: ResponseHeaders | None = None, return_dto: type[AbstractDTO] | None | EmptyType = _EmptyEnum.EMPTY, route_handlers: Sequence[ControllerRouterHandler], security: Sequence[SecurityRequirement] | None = None, signature_namespace: Mapping[str, Any] | None = None, signature_types: Sequence[Any] | None = None, tags: Sequence[str] | None = None, type_decoders: TypeDecodersSequence | None = None, type_encoders: TypeEncodersMap | None = None, websocket_class: type[WebSocket] | None = None, request_max_body_size: int | None | EmptyType = _EmptyEnum.EMPTY) None

初始化一个 Router。 Args: after_request: 一个同步或异步函数,在 Request 传递给任何路由处理器之前执行。如果此函数返回一个值,请求将不会到达路由处理器,而是使用该返回值。 after_response: 一个同步或异步函数,在响应被等待(await)后调用。它接收 Request 对象,且不应返回任何值。 before_request: 一个同步或异步函数,在调用路由处理器之前立即执行。接收 litestar.connection.Request 实例,任何非 None 的返回值都将用于响应,从而绕过路由处理器。 cache_control: 一个类型为 CacheControlHeadercache-control 头部,将添加到本路由器的路由处理器中。可以被路由处理器覆盖。 dependencies: 一个以字符串为键的映射,包含依赖 Provide 实例。 dto: 用于请求数据(反)序列化和验证的 AbstractDTO。 etag: 一个类型为 ETagetag 头部,将添加到本应用的路由处理器中。 exception_handlers: 一个将状态码和/或异常类型映射到处理函数的映射。 guards: 一个 Guard 可调用对象的序列。 include_in_schema: 一个布尔标志,决定路由处理器是否应在 OpenAPI 架构中记录。 middleware: 一个 Middleware 序列。 opt: 一个以字符串为键的映射,包含任意值,可在 Guards 中访问,或在任何可访问 RequestASGI Scope 的地方访问。 parameters: 一个 Parameter 定义的映射,可供所有应用路径使用。 path: 一个路径片段,将作为前缀添加到与本路由器实例关联的所有路由处理器、控制器和其他路由器上。 request_class: 一个 Request 的自定义子类,将作为与本路由器实例关联的所有路由处理器、控制器和其他路由器的默认值。 request_max_body_size: 请求体的最大允许大小(字节)。如果超过此大小,将返回 '413 - Request Entity Too Large' 错误响应。 response_class: 一个 Response 的自定义子类,将作为与本路由器实例关联的所有路由处理器、控制器和其他路由器的默认值。 response_cookies: 一个 Cookie 实例序列。 response_headers: 一个以字符串为键的映射,包含 ResponseHeader 实例。 return_dto: 用于序列化出站响应数据的 AbstractDTO。 route_handlers: 必需的路由处理器序列,可包含 Router 实例、Controller 子类或由路由处理器装饰器装饰的任何函数。 security: 一个字典序列,将添加到应用中所有路由处理器的架构中。详见 SecurityRequirement。 signature_namespace: 一个名称到类型的映射,用于签名建模期间的正向引用解析。 signature_types: 一个类型序列,用于签名建模期间的正向引用解析。这些类型将使用其 __name__ 属性添加到签名命名空间中。 tags: 一个字符串标签序列,将追加到应用中所有路由处理器的架构中。 type_decoders: 一个元组序列,每个元组由一个测试类型身份的谓词和一个用于反序列化的 msgspec 钩子组成。 type_encoders: 一个将类型映射到可调用对象的映射,这些可调用对象将类型转换为支持序列化的类型。 websocket_class: 一个 WebSocket 的自定义子类,将作为与本路由器实例关联的所有路由处理器、控制器和其他路由器的默认值。

register(value: ControllerRouterHandler) list[BaseRoute]

在路由器上注册 Controller、Route 实例或 RouteHandler

property route_handler_method_map: dict[str, RouteHandlerMapItem]

Map route paths to RouteHandlerMapItem

返回:

A dictionary mapping paths to route handlers

classmethod get_route_handler_map(value: RouteHandlerType | Router) dict[str, RouteHandlerMapItem]

Map route handlers to HTTP methods.