github.com/yankunsam/loki/v2@v2.6.3-0.20220817130409-389df5235c27/pkg/util/server/middleware.go (about) 1 package server 2 3 import ( 4 "net/http" 5 6 "github.com/weaveworks/common/httpgrpc" 7 "github.com/weaveworks/common/middleware" 8 ) 9 10 // NewPrepopulateMiddleware creates a middleware which will parse incoming http forms. 11 // This is important because some endpoints can POST x-www-form-urlencoded bodies instead of GET w/ query strings. 12 func NewPrepopulateMiddleware() middleware.Interface { 13 return middleware.Func(func(next http.Handler) http.Handler { 14 return http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) { 15 err := req.ParseForm() 16 if err != nil { 17 WriteError(httpgrpc.Errorf(http.StatusBadRequest, err.Error()), w) 18 return 19 20 } 21 next.ServeHTTP(w, req) 22 }) 23 }) 24 } 25 26 func ResponseJSONMiddleware() middleware.Interface { 27 return middleware.Func(func(next http.Handler) http.Handler { 28 return http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) { 29 w.Header().Set("Content-Type", "application/json; charset=UTF-8") 30 next.ServeHTTP(w, req) 31 }) 32 }) 33 }