diff --git a/modules/openapi-generator/src/main/resources/go-server/routers.mustache b/modules/openapi-generator/src/main/resources/go-server/routers.mustache index d7e3642549ca..b26f8febb410 100644 --- a/modules/openapi-generator/src/main/resources/go-server/routers.mustache +++ b/modules/openapi-generator/src/main/resources/go-server/routers.mustache @@ -88,7 +88,7 @@ func NewRouter(routers ...Router) {{#routers}}{{#mux}}*mux.Router{{/mux}}{{#chi} // EncodeJSONResponse uses the json encoder to write an interface to the http response with an optional status code func EncodeJSONResponse(i interface{}, status *int,{{#addResponseHeaders}} headers map[string][]string,{{/addResponseHeaders}} w http.ResponseWriter) error { - {{#addResponseHeader}} + {{#addResponseHeaders}} wHeader := w.Header() if headers != nil { for key, values := range headers { @@ -98,10 +98,10 @@ func EncodeJSONResponse(i interface{}, status *int,{{#addResponseHeaders}} heade } } wHeader.Set("Content-Type", "application/json; charset=UTF-8") - {{/addResponseHeader}} - {{^addResponseHeader}} + {{/addResponseHeaders}} + {{^addResponseHeaders}} w.Header().Set("Content-Type", "application/json; charset=UTF-8") - {{/addResponseHeader}} + {{/addResponseHeaders}} if status != nil { w.WriteHeader(*status) } else { diff --git a/samples/server/petstore/go-api-server/go/routers.go b/samples/server/petstore/go-api-server/go/routers.go index 7f41207fbde5..2b34778c5a1b 100644 --- a/samples/server/petstore/go-api-server/go/routers.go +++ b/samples/server/petstore/go-api-server/go/routers.go @@ -61,7 +61,15 @@ func NewRouter(routers ...Router) *mux.Router { // EncodeJSONResponse uses the json encoder to write an interface to the http response with an optional status code func EncodeJSONResponse(i interface{}, status *int, headers map[string][]string, w http.ResponseWriter) error { - w.Header().Set("Content-Type", "application/json; charset=UTF-8") + wHeader := w.Header() + if headers != nil { + for key, values := range headers { + for _, value := range values { + wHeader.Add(key, value) + } + } + } + wHeader.Set("Content-Type", "application/json; charset=UTF-8") if status != nil { w.WriteHeader(*status) } else { diff --git a/samples/server/petstore/go-chi-server/go/routers.go b/samples/server/petstore/go-chi-server/go/routers.go index 74b5392ac877..3213d5dde239 100644 --- a/samples/server/petstore/go-chi-server/go/routers.go +++ b/samples/server/petstore/go-chi-server/go/routers.go @@ -57,7 +57,15 @@ func NewRouter(routers ...Router) chi.Router { // EncodeJSONResponse uses the json encoder to write an interface to the http response with an optional status code func EncodeJSONResponse(i interface{}, status *int, headers map[string][]string, w http.ResponseWriter) error { - w.Header().Set("Content-Type", "application/json; charset=UTF-8") + wHeader := w.Header() + if headers != nil { + for key, values := range headers { + for _, value := range values { + wHeader.Add(key, value) + } + } + } + wHeader.Set("Content-Type", "application/json; charset=UTF-8") if status != nil { w.WriteHeader(*status) } else {