github.com/gogf/gf@v1.16.9/.example/net/ghttp/server/middleware/error_handling.go (about) 1 package main 2 3 import ( 4 "net/http" 5 6 "github.com/gogf/gf/frame/g" 7 "github.com/gogf/gf/net/ghttp" 8 ) 9 10 func MiddlewareAuth(r *ghttp.Request) { 11 token := r.Get("token") 12 if token == "123456" { 13 r.Middleware.Next() 14 } else { 15 r.Response.WriteStatus(http.StatusForbidden) 16 } 17 } 18 19 func MiddlewareCORS(r *ghttp.Request) { 20 r.Response.CORSDefault() 21 r.Middleware.Next() 22 } 23 24 func MiddlewareError(r *ghttp.Request) { 25 r.Middleware.Next() 26 if r.Response.Status >= http.StatusInternalServerError { 27 r.Response.ClearBuffer() 28 r.Response.Write("Internal error occurred, please try again later.") 29 } 30 } 31 32 func main() { 33 s := g.Server() 34 s.Group("/api.v2", func(group *ghttp.RouterGroup) { 35 group.Middleware(MiddlewareAuth, MiddlewareCORS, MiddlewareError) 36 group.ALL("/user/list", func(r *ghttp.Request) { 37 panic("db error: sql is xxxxxxx") 38 }) 39 }) 40 s.SetPort(8199) 41 s.Run() 42 }