golang-gin框架

import (
    "github.com/gin-gonic/gin"
    "net/http"
    "github.com/sirupsen/logrus"
)


// 1、最简单gin
func GinSample(){
    engine := gin.Default()
    engine.Any("/",func(context *gin.Context){
        context.String(http.StatusOK,"hello world")
    })
    engine.Run(":9025")
}

// 2、gin各种方法
func GinFunc(){
    engine := gin.Default()

    // get
    engine.GET("/get",func(context *gin.Context){
        context.JSON(http.StatusOK,gin.H{"message":"hello world","status":"done"})
    })

    // put
    engine.PUT("/put",func(context *gin.Context){
        context.String(http.StatusOK,"put ok")
    })

    // post
    engine.POST("/post",nil)
    //...
    engine.Run(":9025")
}

// 3、gin 解析入参
func GinGetParam(){
    engine := gin.Default()
    engine.GET("/get/:name/*action",func(context *gin.Context){
        name := context.Param("Guest")
        action := context.Param("action")
        context.String(http.StatusOK,"welcome " + name + action)
    })
    engine.Run(":9025")
}

// 4、gin 路由组
func GinGroup(){
    engine := gin.Default()
    v1 := engine.Group("/v1")
    {
        v1.GET("/get",nil) // handlers待实现
        v1.POST("post",nil)
    }

    v2 := engine.Group("/v2")
    {
        v2.GET("/get",nil)
        v2.POST("/post",nil)
    }
    engine.Run(":9025")
}

// 5、中间件
func Middle() {
    router := gin.Default()

    // 注册一个路由,使用了 middleware1,middleware2 两个中间件
    router.GET("/someGet", middleware1, middleware2, handler)

    // 默认绑定 :8080
    router.Run()
}

func handler(c *gin.Context) {
    logrus.Println("exec handler")
}

func middleware1(c *gin.Context){
    // do something
    c.Next()

}

func middleware2(c *gin.Context){
    // do something
    c.Next()
}

猜你喜欢

转载自www.cnblogs.com/zengyjun/p/10096909.html