Vercel Routing Middleware 現已支援 Python
Routing Middleware now supports Python
Vercel 宣佈 Routing Middleware 現已支援 Python,讓開發者能為 FastLab、Flask、Django 等框架編寫在請求到達應用程式之前執行的路由中介軟體。
原文提供 Python 路由中介軟體的設定方式與程式碼範例,開發者可據此評估如何整合至現有專案中。
你現在可以在 Python 為 FastAPI、Flask、Django 以及其他 Python 框架撰寫 routing middleware。它會在請求到達你的應用程式之前執行,並能重寫、重導或回應請求。
要設定它,請將 proxy 入口點在 vercel.toml 指向你的代理:
vercel.toml
[proxy]
entrypoint = "proxy:proxy"
你的中介軟體是一個獨立於主應用程式之外執行的 ASGI 或 WSGI 應用程式,只包含你 pyproject.toml 的 vercel.proxy 依賴組中的套件。將你的中介軟體所匯入的套件加入該組別:
uv add --group vercel.proxy vercel-proxy
The vercel-proxy 套件提供在 Vercel 上撰寫 routing middleware 的工具,包括一個按路徑路由請求的 Proxy 應用程式:
proxy.py
from urllib.parse import quote
from vercel.proxy import ContinueResponse, Proxy, RedirectResponse, Request, Response
proxy = Proxy()
@proxy.route("/old-blog/{slug}")
def old_blog(request: Request) -> Response:
slug = quote(request.path_params["slug"])
return RedirectResponse(f"/blog/{slug}", status_code=308)
@proxy.route("/api/{path:path}")
def api(request: Request) -> Response:
return ContinueResponse(request_headers={"x-api-version": "2"})
未匹配到任何路由的請求將保持不變地繼續傳遞到你的應用程式。
欲瞭解更多資訊,請參閱 Routing Middleware Python reference。