我正在尝试将来自 Go 后端的请求代理到微服务,并在将响应发送到客户端之前对其进行修改。请求链为:Client -> Go backend -> microservice -> Go backend -> client
我正在使用 Go Gin 框架。工作中间件:
func ReverseProxy(target string) gin.HandlerFunc {
log.Println(target)
url, err := url.Parse(target)
if err != nil {
log.Fatal(err)
}
proxy := httputil.NewSingleHostReverseProxy(url)
return func(c *gin.Context) {
proxy.ServeHTTP(c.Writer, c.Request)
}
}
现在我的问题是:如何接收和修改微服务发送的响应?