You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

24 lines
569 B

  1. package middleware
  2. import (
  3. "github.com/gogf/gf/v2/net/ghttp"
  4. )
  5. // CustomResponseMiddleware 自定义响应中间件,处理嵌套问题
  6. func CustomResponseMiddleware(r *ghttp.Request) {
  7. // 执行下一个中间件或处理程序
  8. r.Middleware.Next()
  9. // 获取处理程序的响应内容
  10. response := r.GetHandlerResponse()
  11. if response == nil {
  12. // 如果没有响应内容,则直接返回
  13. return
  14. }
  15. // 清空原始响应缓冲区,避免重复输出
  16. r.Response.ClearBuffer()
  17. // 自定义返回格式,避免嵌套
  18. r.Response.WriteJson(response)
  19. }