Set correct content type and send once (#1965)

Set correct Content-Type headers on each endpoint rather than on the router. The router would, at times, send two Content-Type headers and other times just send the wrong one.
This commit is contained in:
Matt
2024-06-02 12:49:36 -07:00
committed by GitHub
parent 0ef761cc8b
commit bde4952614
12 changed files with 13 additions and 2 deletions
-1
View File
@@ -52,7 +52,6 @@ func App(logger *log.Logger, conf *config.Config) (http.Handler, error) {
SSLRedirect: conf.ForceSSL,
SSLProxyHeaders: map[string]string{"X-Forwarded-Proto": "https"},
}).Handler,
mw.ContentType,
)
var subRouter *mux.Router
+1
View File
@@ -23,6 +23,7 @@ func catalogHandler(s storage.Backend) http.HandlerFunc {
const op errors.Op = "actions.CatalogHandler"
cs, isCataloger := s.(storage.Cataloger)
f := func(w http.ResponseWriter, r *http.Request) {
w.Header().Set("Content-Type", "application/json; charset=utf-8")
if !isCataloger {
w.WriteHeader(errors.KindNotImplemented)
return
+1
View File
@@ -5,5 +5,6 @@ import (
)
func healthHandler(w http.ResponseWriter, r *http.Request) {
w.Header().Set("Content-Type", "application/json")
w.WriteHeader(http.StatusOK)
}
+1 -1
View File
@@ -125,7 +125,7 @@ func proxyHomeHandler(c *config.Config) http.HandlerFunc {
w.WriteHeader(http.StatusInternalServerError)
}
w.Header().Add("Content-Type", "text/html")
w.Header().Set("Content-Type", "text/html")
w.WriteHeader(http.StatusOK)
err = tmp.ExecuteTemplate(w, "home", templateData)
+2
View File
@@ -23,6 +23,8 @@ func indexHandler(index index.Indexer) http.HandlerFunc {
http.Error(w, err.Error(), errors.Kind(err))
return
}
w.Header().Set("Content-Type", "application/json; charset=utf-8")
enc := json.NewEncoder(w)
for _, meta := range list {
if err = enc.Encode(meta); err != nil {
+1
View File
@@ -9,6 +9,7 @@ import (
func getReadinessHandler(s storage.Backend) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
if _, err := s.List(r.Context(), "github.com/gomods/athens"); err != nil {
w.Header().Set("Content-Type", "application/json; charset=utf-8")
w.WriteHeader(http.StatusInternalServerError)
}
}
+1
View File
@@ -9,6 +9,7 @@ import (
// robotsHandler implements GET baseURL/robots.txt.
func robotsHandler(c *config.Config) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
w.Header().Set("Content-Type", "text/plain; charset=utf-8")
http.ServeFile(w, r, c.RobotsFile)
}
}
+2
View File
@@ -9,4 +9,6 @@ import (
func versionHandler(w http.ResponseWriter, r *http.Request) {
_ = json.NewEncoder(w).Encode(build.Data())
w.Header().Set("Content-Type", "application/json; charset=utf-8")
w.WriteHeader(http.StatusOK)
}
+1
View File
@@ -17,6 +17,7 @@ const PathLatest = "/{module:.+}/@latest"
func LatestHandler(dp Protocol, lggr log.Entry, df *mode.DownloadFile) http.Handler {
const op errors.Op = "download.LatestHandler"
f := func(w http.ResponseWriter, r *http.Request) {
w.Header().Set("Content-Type", "text/plain; charset=utf-8")
mod, err := paths.GetModule(r)
if err != nil {
lggr.SystemErr(errors.E(op, err))
+1
View File
@@ -18,6 +18,7 @@ const PathList = "/{module:.+}/@v/list"
func ListHandler(dp Protocol, lggr log.Entry, df *mode.DownloadFile) http.Handler {
const op errors.Op = "download.ListHandler"
f := func(w http.ResponseWriter, r *http.Request) {
w.Header().Set("Content-Type", "application/json; charset=utf-8")
mod, err := paths.GetModule(r)
if err != nil {
lggr.SystemErr(errors.E(op, err))
+1
View File
@@ -15,6 +15,7 @@ const PathVersionInfo = "/{module:.+}/@v/{version}.info"
func InfoHandler(dp Protocol, lggr log.Entry, df *mode.DownloadFile) http.Handler {
const op errors.Op = "download.InfoHandler"
f := func(w http.ResponseWriter, r *http.Request) {
w.Header().Set("Content-Type", "application/json; charset=utf-8")
mod, ver, err := getModuleParams(r, op)
if err != nil {
lggr.SystemErr(err)
+1
View File
@@ -15,6 +15,7 @@ const PathVersionModule = "/{module:.+}/@v/{version}.mod"
func ModuleHandler(dp Protocol, lggr log.Entry, df *mode.DownloadFile) http.Handler {
const op errors.Op = "download.VersionModuleHandler"
f := func(w http.ResponseWriter, r *http.Request) {
w.Header().Set("Content-Type", "text/plain; charset=utf-8")
mod, ver, err := getModuleParams(r, op)
if err != nil {
err = errors.E(op, errors.M(mod), errors.V(ver), err)