diff --git a/internal/pkg/web/middleware/header.go b/internal/pkg/web/middleware/header.go new file mode 100644 index 0000000..069fe7d --- /dev/null +++ b/internal/pkg/web/middleware/header.go @@ -0,0 +1,16 @@ +package middleware + +import "net/http" + +func CORSHeaderMiddleware(next http.Handler) http.Handler { + return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + w.Header().Del("Content-Length") + w.Header().Set("Transfer-Encoding", "chunked") + w.Header().Set("Content-Type", "application/json;charset=utf-8") + w.Header().Set("Access-Control-Allow-Origin", "*") + w.Header().Set("Access-Control-Allow-Headers", "Content-Type") + w.Header().Set("Access-Control-Allow-Methods", "GET,POST,PUT,PATCH,OPTIONS") + w.Header().Set("Access-Control-Allow-Credentials", "true") + next.ServeHTTP(w, r) + }) +} diff --git a/internal/pkg/web/middleware/request.go b/internal/pkg/web/middleware/request.go new file mode 100644 index 0000000..f8b2211 --- /dev/null +++ b/internal/pkg/web/middleware/request.go @@ -0,0 +1,23 @@ +package middleware + +import ( + "net/http" + "time" + + "github.com/sirupsen/logrus" +) + +func LogRequestMiddleware(next http.Handler) http.Handler { + return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + at := time.Now() + defer func() { + logrus.WithFields(logrus.Fields{ + "RemoteAddr": r.RemoteAddr, + "Method": r.Method, + "URI": r.RequestURI, + "Cost": time.Since(at).String(), + }).Infof("[%s] %s", r.Method, r.RequestURI) + }() + next.ServeHTTP(w, r) + }) +}