Vercel的路由中间件现在可以用Python写了。FastAPI、Flask、Django这些Python应用都能用上,中间件在请求到达应用之前运行,可以改写请求、做重定向,或者直接给出响应。
接入方式是在vercel.toml里把代理入口指向你的proxy:
- [proxy] 段下写 entrypoint = "proxy:proxy"
这个中间件是一个ASGI或WSGI应用,和主应用分开运行,能用的只有pyproject.toml里vercel.proxy依赖组中的包。中间件里import了什么,就得把对应的包加进这个组:
- uv add --group vercel.proxy vercel-proxy
vercel-proxy这个包提供了在Vercel上写路由中间件的工具,其中包括一个按路径分发请求的Proxy应用。示例里从vercel.proxy导入了ContinueResponse、Proxy、RedirectResponse、Request和Response,先实例化一个proxy对象,再用装饰器挂路由。
第一条路由匹配/old-blog/{slug},取出路径参数里的slug做URL编码,然后返回RedirectResponse,跳转到/blog/{slug},状态码308。第二条路由匹配/api/{path:path},返回ContinueResponse,并带上请求头x-api-version: 2。
没有匹配到任何路由的请求,会原样继续交给你的应用处理。更多细节可以查路由中间件的Python参考文档。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.