路由器¶
- class litestar.router.Router¶
基类:
objectLitestar 路由类。 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: 一个类型为CacheControlHeader的cache-control头部,将添加到本路由器的路由处理器中。可以被路由处理器覆盖。 dependencies: 一个以字符串为键的映射,包含依赖Provide实例。 dto: 用于请求数据(反)序列化和验证的AbstractDTO。 etag: 一个类型为ETag的etag头部,将添加到本应用的路由处理器中。 exception_handlers: 一个将状态码和/或异常类型映射到处理函数的映射。 guards: 一个Guard可调用对象的序列。 include_in_schema: 一个布尔标志,决定路由处理器是否应在 OpenAPI 架构中记录。 middleware: 一个Middleware序列。 opt: 一个以字符串为键的映射,包含任意值,可在Guards中访问,或在任何可访问Request或ASGI 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的自定义子类,将作为与本路由器实例关联的所有路由处理器、控制器和其他路由器的默认值。