1 回答
TA贡献1946条经验 获得超4个赞
(您从中调用的Run)确实将路由器附加到 a并开始侦听和服务 HTTP 请求。它是. 除非发生错误,否则它会无限期地阻止调用者。r.Run(":8080")Serve()http.Serverhttp.ListenAndServe(addr, router)
如果你想用这样的方式创建测试服务器,你必须r.Run(":8080")从中取出。例如,您可以像这样修改代码:Serve()Serve()httptest.NewServer(Serve())
func Serve() *gin.Engine {
logger.Log.Info("Serve()")
r := gin.Default()
r.GET("/ping", func(c *gin.Context) {
c.JSON(200, gin.H{
"message": "pong",
})
})
r.Use(ginzap.Ginzap(logger.Log, time.RFC3339, false))
r.Use(ginzap.RecoveryWithZap(logger.Log, true))
r.GET("/nodes", listNodes)
r.POST("/uuid", getUUID)
r.GET("/hwstatus/:node_id", getNodeHWStatus)
r.PUT("/hwstatus/:node_id", updateNodeHWStatus)
node := r.Group("/node")
{
node.POST("/", createNode)
node.GET("/:node_id", describeNode)
node.PUT("/:node_id", updateNode)
node.DELETE("/:node_id", deleteNode)
node.POST("/deploy/:node_id", deployNode)
}
return r
}
func Start() {
if err := Serve().Run(":8080"); err != nil {
logger.Log.Fatal("Failed to Run Server", zap.Error(err))
//log.Fatalf("Failed to Run server: %v ", err)
}
}
- 1 回答
- 0 关注
- 138 浏览
添加回答
举报
