mirror of
https://github.com/gomods/athens
synced 2026-02-03 12:10:32 +00:00
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:
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -5,5 +5,6 @@ import (
|
||||
)
|
||||
|
||||
func healthHandler(w http.ResponseWriter, r *http.Request) {
|
||||
w.Header().Set("Content-Type", "application/json")
|
||||
w.WriteHeader(http.StatusOK)
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user