router.go 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. package routers
  2. import (
  3. "mtp2_if/controllers/cptrade"
  4. "mtp2_if/logger"
  5. "time"
  6. "github.com/gin-gonic/gin"
  7. _ "mtp2_if/docs"
  8. ginSwagger "github.com/swaggo/gin-swagger"
  9. "github.com/swaggo/gin-swagger/swaggerFiles"
  10. )
  11. // InitRouter 初始化路由器的方法
  12. func InitRouter() *gin.Engine {
  13. r := gin.New()
  14. // 设置日志中间件
  15. r.Use(ginLoggerMiddleware())
  16. // 设置奔溃中间件
  17. r.Use(ginRecoveryMiddleware())
  18. // Swagger
  19. r.GET("/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler))
  20. // 路由分组
  21. apiR := r.Group("/api")
  22. // ************************ 产能预售 ************************
  23. cpTradeR := apiR.Group("CPTrade")
  24. // cpTradeR.Use(token.Auth())
  25. cpTradeR.Use()
  26. {
  27. // 查询产能预售申请表
  28. cpTradeR.GET("/QueryPreasleApply", cptrade.QueryPreasleApply)
  29. }
  30. return r
  31. }
  32. func ginLoggerMiddleware() gin.HandlerFunc {
  33. return func(c *gin.Context) {
  34. start := time.Now()
  35. c.Next()
  36. end := time.Now()
  37. latency := end.Sub(start)
  38. path := c.Request.URL.RequestURI()
  39. clientip := c.ClientIP()
  40. method := c.Request.Method
  41. statuscode := c.Writer.Status()
  42. logger.GetLogger().Infof("|%3d|%13v|%15s|%s %s",
  43. statuscode,
  44. latency,
  45. clientip,
  46. method,
  47. path)
  48. }
  49. }
  50. func ginRecoveryMiddleware() gin.HandlerFunc {
  51. return gin.RecoveryWithWriter(logger.GetLogWriter())
  52. }