Vercel News

Routing Middleware now supports Python

6.4内容质量

TL;DR · AI 摘要

Routing Middleware now supports Python - Vercel You can now write routing middleware in Python for FastAPI, Flask, Djang...

核心要点

  • 主题聚焦:Routing Middleware now supports Python
  • 来源:Vercel News,建议结合原文判断细节。
  • AI 分析暂不可用,本条为保底评分与摘要。
#AI#编程#后端
打开原文

Vercel 路由中间件现已支持 Python

现在您可以使用 Python 为 FastAPI、Flask、Django 和其他 Python 框架编写路由中间件。该中间件在请求到达您的应用前运行,可以重写、重定向或直接响应请求。

要进行配置,请在 vercel.toml 中将代理入口点指向您的代理:

vercel.toml

code
1
[
proxy
]
2
entrypoint =
"proxy:proxy"

您的中间件是一个独立于主应用运行的 ASGI 或 WSGI 应用,仅能使用 pyproject.toml 中 vercel.proxy 依赖组所包含的包。请将中间件所需的依赖包添加到该组:

code
1
uv
add
--group
vercel.proxy vercel-proxy

vercel-proxy 包提供了在 Vercel 上编写路由中间件的实用工具,包括一个按路径路由请求的代理应用:

proxy.py

code
1
from
urllib
.
parse
import
quote
2
from
vercel
.
proxy
import
ContinueResponse
,
Proxy
,
RedirectResponse
,
Request
,
Response
3
proxy
=
Proxy
(
)
4
5
@proxy
.
route
(
"/old-blog/{slug}"
)
6
def
old_blog
(
request
:
Request
)
-
>
Response
:
7
slug
=
quote
(
request
.
path_params
[
"slug"
]
)
8
return
RedirectResponse
(
f"/blog/
{
slug
}
"
,
status_code
=
308
)
9
10
@proxy
.
route
(
"/api/{path:path}"
)
11
def
api
(
request
:
Request
)
-
>
Response
:
12
return
ContinueResponse
(
request_headers
=
{
"x-api-version"
:
"2"
}
)

未匹配任何路由的请求将保持不变地继续传递给您的应用。

如需了解更多详情,请参阅 [路由中间件 Python 参考文档](Routing Middleware Python reference)。