6050d11f27
- 创建基于 CloudWego Hertz 的 Go 微服务脚手架 - 集成 Nacos 服务注册/发现功能 - 添加 gRPC 客户端支持 - 实现环境变量配置管理 (.env.example) - 添加 HTTP 中间件 (Recovery, AccessLog, CORS) - 配置 Gitea CI/CD 构建部署流程 BREAKING CHANGE: 项目结构调整,从简单的 API 服务升级为完整的微服务架构
25 lines
489 B
Go
25 lines
489 B
Go
package middleware
|
|
|
|
import (
|
|
"apiServer_service/utils/logger"
|
|
"apiServer_service/utils/request"
|
|
"context"
|
|
"fmt"
|
|
"runtime/debug"
|
|
|
|
"github.com/cloudwego/hertz/pkg/app"
|
|
)
|
|
|
|
func Recovery() app.HandlerFunc {
|
|
return func(ctx context.Context, c *app.RequestContext) {
|
|
defer func() {
|
|
if r := recover(); r != nil {
|
|
logger.Error("Panic Recovery", fmt.Sprintf("%v\n%s", r, debug.Stack()))
|
|
request.Error(c, 500, "Internal Server Error")
|
|
c.Abort()
|
|
}
|
|
}()
|
|
c.Next(ctx)
|
|
}
|
|
}
|