背景:我已经用express编写了一个REST API,它扩展并修改了我用Python编写的旧API。旧的API不是非常RESTful:所有"修改/插入/删除"请求是通过POST
完成的,查询结构与新API略有不同。
简而言之,我想在我的新API上编写一些中间件,以旧API的形式重定向请求,以便它们由新API的路由处理。中间件需要是自包含的,即我不希望任何单独的路由处理重定向逻辑。
这显然需要重定向请求。我知道我可以使用redirect
方法执行此操作,如(轻微伪代码):
app.use('/', (req, res, next) => {
if (requestIsOld(req)) {
return res.redirect(newRoute(req));
}
return next();
});
我知道我可以要求客户使用相同的方法发出新请求,其中包含:
res.redirect(307, newRoute);
但是,这导致POST
请求修改/删除新API上的POST
请求的数据,这些请求仅由" add"处理。请求处理程序。
如何重定向POST请求并请求将方法更改为例如PUT或DELETE ?