package main import ( "go-ranking/router" ) func main() { r := router.Router() r.Run(":9999") }
package router import ( "github.com/gin-gonic/gin" "net/http" ) // Router 路由,这里方法名要大写,因为要导出出去,在别的包里使用 func Router() *gin.Engine { r := gin.Default() userGroup := r.Group("/user") // 注意这里,他们不是一起的。 { userGroup.GET("/list", func(c *gin.Context) { c.JSON(http.StatusOK, gin.H{"message": "list"}) }) userGroup.POST("/create", func(c *gin.Context) { c.JSON(http.StatusOK, gin.H{"message": "create"}) }) userGroup.DELETE("/delete", func(c *gin.Context) { c.JSON(http.StatusOK, gin.H{"message": "delete"}) }) userGroup.PATCH("/patch", func(c *gin.Context) { c.JSON(http.StatusOK, gin.H{"message": "patch "}) }) userGroup.PUT("/put", func(c *gin.Context) { c.JSON(http.StatusOK, gin.H{"message": "put "}) }) } return r }
对核心代码做一些解释
• 函数声明:
• func Router() 表示定义一个名为 Router 的函数。
• 返回值 *gin.Engine 表示这个函数返回一个指向 gin.Engine 实例的指针,gin.Engine 是 Gin 框架的核心路由器。
• *gin.Engine:
• gin.Engine 是 Gin 的核心类型,代表整个 HTTP 路由器和中间件系统。
• 通过 gin.Engine 实例,可以定义应用的路由、请求处理逻辑、中间件等。