request.go 764 B

12345678910111213141516171819202122232425262728293031323334353637
  1. package middleware
  2. import (
  3. "bytes"
  4. "encoding/json"
  5. "io"
  6. "net/http"
  7. "ulink-admin/frame"
  8. "ulink-admin/utils"
  9. )
  10. const FAST_BODY_COLNUM = "fast_body_colnum"
  11. // 请求处理
  12. func Request() func(c *frame.Context) {
  13. return func(c *frame.Context) {
  14. if c.Request.Method == http.MethodPut || c.Request.Method == http.MethodPost {
  15. var bodyBytes []byte
  16. if c.Request.Body != nil {
  17. bodyBytes, _ = io.ReadAll(c.Request.Body)
  18. }
  19. var body map[string]interface{}
  20. json.Unmarshal(bodyBytes, &body)
  21. keys := make([]string, len(body))
  22. i := 0
  23. for k, _ := range body {
  24. keys[i] = utils.Camel2Case(k)
  25. i++
  26. }
  27. c.Set(FAST_BODY_COLNUM, keys)
  28. c.Request.Body = io.NopCloser(bytes.NewBuffer(bodyBytes))
  29. }
  30. // 处理请求
  31. c.Next()
  32. }
  33. }