package middleware import ( "bytes" "fmt" "io" "github.com/gin-gonic/gin" ) func RequestLogger() gin.HandlerFunc { return func(c *gin.Context) { buf, _ := io.ReadAll(c.Request.Body) rdr1 := io.NopCloser(bytes.NewBuffer(buf)) rdr2 := io.NopCloser(bytes.NewBuffer(buf)) fmt.Println(readBody(rdr1)) c.Request.Body = rdr2 c.Next() } } func readBody(reader io.Reader) string { buf := new(bytes.Buffer) buf.ReadFrom(reader) s := buf.String() return s }