Golang gin gonic Web框架代理路由到另一个后端

2024-01-21

如何将一些路由的代理 Web 请求反向到另一个后端杜松子酒 https://gin-gonic.github.io/gin/Golang 网络框架

有没有办法直接在Handle函数中转发如下图?

router := gin.New() router.Handle("POST", "/api/v1/endpoint1", ForwardToAnotherBackend)


这是我用于将 gin 框架的特定端点子集反向代理到另一个后端的解决方案:

router.POST("/api/v1/endpoint1", ReverseProxy())

and:

func ReverseProxy() gin.HandlerFunc {

    target := "localhost:3000"

    return func(c *gin.Context) {
        director := func(req *http.Request) {
            r := c.Request

            req.URL.Scheme = "http"
            req.URL.Host = target
            req.Header["my-header"] = []string{r.Header.Get("my-header")}
            // Golang camelcases headers
            delete(req.Header, "My-Header")
        }
        proxy := &httputil.ReverseProxy{Director: director}
        proxy.ServeHTTP(c.Writer, c.Request)
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Golang gin gonic Web框架代理路由到另一个后端 的相关文章

随机推荐