router.go 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. package routers
  2. import (
  3. "mtp2_if/controllers/cptrade"
  4. "mtp2_if/controllers/wrtrade"
  5. "mtp2_if/logger"
  6. "mtp2_if/token"
  7. "time"
  8. "github.com/gin-contrib/cors"
  9. "github.com/gin-gonic/gin"
  10. // Swagger生成的文档
  11. _ "mtp2_if/docs"
  12. ginSwagger "github.com/swaggo/gin-swagger"
  13. "github.com/swaggo/gin-swagger/swaggerFiles"
  14. )
  15. // InitRouter 初始化路由器的方法
  16. func InitRouter() *gin.Engine {
  17. r := gin.New()
  18. // 设置日志中间件
  19. r.Use(ginLoggerMiddleware())
  20. // 设置奔溃中间件
  21. r.Use(ginRecoveryMiddleware())
  22. // 跨域.
  23. r.Use(cors.Default())
  24. // Swagger
  25. r.GET("/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler))
  26. // 路由分组
  27. apiR := r.Group("/api")
  28. apiR.Use(token.Auth())
  29. // ************************ 仓单贸易 ************************
  30. wrTradeR := apiR.Group("WRTrade")
  31. wrTradeR.Use()
  32. {
  33. wrTradeR.GET("/GetAllDeliveryGoods", wrtrade.GetAllDeliveryGoods)
  34. }
  35. // ************************ 产能预售 ************************
  36. cpTradeR := apiR.Group("CPTrade")
  37. cpTradeR.Use()
  38. {
  39. // 查询产能预售申请表
  40. cpTradeR.GET("/QueryPreasleApply", cptrade.QueryPreasleApply)
  41. // 查询远期订单信息
  42. cpTradeR.GET("/QueryCPTradeUserGoodsData", cptrade.QueryCPTradeUserGoodsData)
  43. // 查询远期订单注销申请信息
  44. cpTradeR.GET("/QueryCPTradePositionCancel", cptrade.QueryCPTradePositionCancel)
  45. }
  46. return r
  47. }
  48. func ginLoggerMiddleware() gin.HandlerFunc {
  49. return func(c *gin.Context) {
  50. start := time.Now()
  51. c.Next()
  52. end := time.Now()
  53. latency := end.Sub(start)
  54. path := c.Request.URL.RequestURI()
  55. clientip := c.ClientIP()
  56. method := c.Request.Method
  57. statuscode := c.Writer.Status()
  58. logger.GetLogger().Infof("|%3d|%13v|%15s|%s %s",
  59. statuscode,
  60. latency,
  61. clientip,
  62. method,
  63. path)
  64. }
  65. }
  66. func ginRecoveryMiddleware() gin.HandlerFunc {
  67. return gin.RecoveryWithWriter(logger.GetLogWriter())
  68. }