【发布时间】:2020-03-03 15:32:37
【问题描述】:
我有一个前缀为/api/a 的子路由器,我想在调用一个函数(设置上下文)后将所有对前缀为api/b/{aid} 的端点的请求重定向到api/a。如何实现这一点?
当调用 /api/a/<whatever> 时,我从 cookie 中获取帮助并添加到请求上下文中,但还有其他端点,其中 cookie 不包含 aid 参数,因此我将其作为路由参数。我想要的是任何对/api/b/{aid}/<whatever> 的调用在我在其请求上下文(来自路由参数)中设置aid 之后重定向到/api/a/<whatever>。
- 我绝对不想使用客户端重定向,他不需要知道。
- 我也知道我可以直接传递给任何带有 http.Handler 签名的函数。这正是我想要避免的。
- 有一组固定的端点不会设置 cookie(这是有意的,所以我不想设置一个),并且该组总是以
/api/b/{aid}为前缀。
由于已经有 150 多个端点和处理程序配置到前缀为 /api/a 的子路由器(我们称之为 A)。还有另一个子路由器 B,前缀为 /api/b/{aid}。我想在调用函数后将对子路由器 B 的所有调用重定向到子路由器 A。如果我想要完全相同的东西,为单独的子路由器复制整个处理程序列表是不合逻辑的。
【问题讨论】: