## Mix Gin 基于 Gin 的 Web 库, 扩展 logrus 支持 Gin based Web library, extend Logrus support ## Overview 与原版 `Gin` 有哪些不同? - 扩展了通过 `func(router *gin.Engine)` 闭包初始化路由的方式,方便路由定义规划。 - 扩展了路由日志对第三方 `logger` 的支持,包括:`logrus` 等。 ## Installation - 安装 ``` go get -u github.com/mix-go/gin ``` ## Usage 通过闭包创建路由 ```go routeDefinitionCallback := func(router *gin.Engine) { router.GET("hello", middleware.CorsMiddleware(), func(ctx *gin.Context) { hello := controllers.HelloController{} hello.Index(ctx) }, ) router.POST("users/add", middleware.CorsMiddleware(), func(ctx *gin.Context) { hello := controllers.AddUserController{} hello.Index(ctx) }, ) router.POST("auth", func(ctx *gin.Context) { auth := controllers.AuthController{} auth.Index(ctx) }) } router := gin.New(routeDefinitionCallback) ``` 接入第三方 `logrus` 打印日志 ```go logger := logrus.NewLogger() router.Use(gin.LoggerWithFormatter(logger, func(params gin.LogFormatterParams) string { return fmt.Sprintf("%s|%s|%d|%s", params.Method, params.Path, params.StatusCode, params.ClientIP, ) })) ``` 可以接入实现以下接口的所有第三方日志组件 ```go type Logger interface { Info(args ...interface{}) } ``` ## License Apache License Version 2.0, http://www.apache.org/licenses/