跳转到主要内容

用于将请求分发到多个ASGI应用的中间件,由hypercorn提取。

项目描述

asgi-dispatcher-middleware

用于将请求分发到多个ASGI应用的中间件,由hypercorn提取。

分发到多个ASGI应用

同时服务于多个ASGI应用,在各自的根路径下,这在很多情况下是有用的。这个中间件允许在不同的挂载点上服务于多个应用。

DispatcherMiddleware 接收一个字典,该字典以根路径为键,包含应用。这个字典的顺序很重要,因为根路径会按照这个顺序进行检查。因此,将 /a/b 添加到 /a 之前是很重要的,否则后者会首先匹配所有内容。另外,请注意,根路径不应包含尾随斜杠。

一个示例用法是同时服务于一个graphql应用和一个静态文件服务应用。使用名为 graphql_app 的graphql应用,以根路径 /graphql 服务所有内容,并使用名为 static_app 的静态文件应用服务其他所有内容(即根路径为 /)。此时,DispatcherMiddleware 可以配置为:

from asgi_dispatcher_middleware import DispatcherMiddleware

dispatcher_app = DispatcherMiddleware({
    "/graphql": graphql_app,
    "/": static_app,
})

然后可以通过任何ASGI框架提供服务

$ hypercorn module:dispatcher_app
$ uvicorn module:dispatcher_app

另请参阅

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解更多关于安装包的信息。

源分发

asgi-dispatcher-middleware-1.0.0.tar.gz (5.2 kB 查看哈希值)

上传时间 来源

构建发行版

asgi_dispatcher_middleware-1.0.0-py2.py3-none-any.whl (6.8 kB 查看哈希值)

上传时间 Python 2 Python 3

支持