From e770731643e1a2de2f9793e5aef6e84032ccdd5a Mon Sep 17 00:00:00 2001 From: Muyao CHEN Date: Wed, 25 Sep 2024 13:35:38 +0200 Subject: [PATCH] middleware: Add recovery middleware --- framework/middleware/recovery.go | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 framework/middleware/recovery.go diff --git a/framework/middleware/recovery.go b/framework/middleware/recovery.go new file mode 100644 index 0000000..16568a9 --- /dev/null +++ b/framework/middleware/recovery.go @@ -0,0 +1,21 @@ +package middleware + +import ( + "net/http" + + "git.vinchent.xyz/vinchent/go-web/framework" +) + +// Recovery is a middleware that recovers from the panic +func Recovery() framework.ControllerHandler { + return func(c *framework.Context) error { + defer func() { + if err := recover(); err != nil { + c.WriteJSON(http.StatusInternalServerError, err) + } + }() + + c.Next() + return nil + } +}