routers/router.go
package routers
import (
"github.com/gin-gonic/gin"
"gin-blog/pkg/setting"
)
func InitRouter() *gin.Engine {
r := gin.New()
r.Use(gin.Logger())
r.Use(gin.Recovery())
gin.SetMode(setting.RunMode)
r.GET("/test", func(c *gin.Context) {
c.JSON(200, gin.H{
"message": "test",
})
})
return r
}
gin-blog/main.go
1 package main 2 3 import ( 4 "fmt" 5 "net/http" 6 7 "gin-blog/routers" 8 "gin-blog/pkg/setting" 9 ) 10 11 func main() { 12 router := routers.InitRouter() 13 14 s := &http.Server{ 15 Addr: fmt.Sprintf(":%d", setting.HTTPPort), 16 Handler: router, 17 ReadTimeout: setting.ReadTimeout, 18 WriteTimeout: setting.WriteTimeout, 19 MaxHeaderBytes: 1 << 20, 20 } 21 22 s.ListenAndServe() 23 }
定义接口
本节正是编写标签的逻辑,我们想一想,一般接口为增删改查是基础的
- 获取标签列表:GET("/tags")
- 新建标签:POST("/tags")
- 更新指定标签:PUT("/tags/:id")
- 删除指定标签:DELETE("/tags/:id")
新的routers/router.go
package routers import ( "github.com/gin-gonic/gin" "gin-blog/routers/api/v1" "gin-blog/pkg/setting" ) func InitRouter() *gin.Engine { r := gin.New() r.Use(gin.Logger()) r.Use(gin.Recovery()) gin.SetMode(setting.RunMode) apiv1 := r.Group("/api/v1") { //获取标签列表 apiv1.GET("/tags", v1.GetTags) //新建标签 apiv1.POST("/tags", v1.AddTag) //更新指定标签 apiv1.PUT("/tags/:id", v1.EditTag) //删除指定标签 apiv1.DELETE("/tags/:id", v1.DeleteTag) } return r }