diff --git a/smalltrip/middleware/request.go b/smalltrip/middleware/request.go new file mode 100644 index 0000000..79032ff --- /dev/null +++ b/smalltrip/middleware/request.go @@ -0,0 +1,17 @@ +package middleware + +import ( + "net/http" + "strings" +) + +func FormMethod(key string) Middleware { + return func(next http.Handler) http.Handler { + return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + if v := r.FormValue(key); v != "" { + r.Method = strings.ToUpper(v) + } + next.ServeHTTP(w, r) + }) + } +}