2017-03-25 4 views
0

私は、Goのバックエンドからマイクロサービスに要求をプロキシし、クライアントに送信する前に応答を変更しようとしています。リクエストチェーンは次のとおりです。クライアント - >バックエンド - >マイクロサービス - >バックエンド - >クライアントプロキシミドルウェアに移動して応答を変更する

私は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) 
    } 
} 

今私の質問です:私はどのように受け取るとmicroserviceによって送信された応答を変更することができますか?

答えて

1

ReverseProxy。ModificationResponse?

たとえば、レスポンスにカスタムヘッダーが追加されます。

func addCustomHeader(r *http.Response) error { 
    r.Header["Hello"] = []string{"World"} 
    return nil 
} 

proxy.ModifyResponse = addCustomHeader 
+0

ありがとうございました!その実装方法の例を教えてください。 – leandermelms

+1

私は例を追加しました。 – Zoyd

関連する問題