Gin 概述;
python
(1).Gin 是一個 go 寫的 web 框架,具備高性能的優勢。官方地址:https://github.com/gin-gonic/gin linux
部署Gin 框架:git
注意:github
1.提早部署go環境設置好GOPATH 環境變量;web
2.1 獲取Gin 框架軟件包;app
go get -u github.com/gin-gonic/gin import "github.com/gin-gonic/gin"
3.Gin 第一個示例;框架
package main import ( "github.com/gin-gonic/gin" ) func main() { r := gin.Default() r.GET("/", func(c *gin.Context) { c.JSON(200, gin.H{ "message": "Hello World!", }) }) r.Run() }
4.請求返回示例;ide
5.獲取路徑的參數;post
func main() { router := gin.Default() // 此規則可以匹配/user/john這種格式,但不能匹配/user/ 或 /user這種格式 router.GET("/user/:name", func(c *gin.Context) { name := c.Param("name") c.String(http.StatusOK, "Hello %s", name) }) // 可是,這個規則既能匹配/user/john/格式也能匹配/user/john/send這種格式 // 若是沒有其餘路由器匹配/user/john,它將重定向到/user/john/ router.GET("/user/:name/*action", func(c *gin.Context) { name := c.Param("name") action := c.Param("action") message := name + " is " + action c.String(http.StatusOK, message) }) router.Run(":8080") }
6.獲取GET參數;性能
func main() { router := gin.Default() // 匹配的url格式: /welcome?firstname=Jane&lastname=Doe router.GET("/welcome", func(c *gin.Context) { firstname := c.DefaultQuery("firstname", "Guest") lastname := c.Query("lastname") // 是 c.Request.URL.Query().Get("lastname") 的簡寫 c.String(http.StatusOK, "Hello %s %s", firstname, lastname) }) router.Run(":8080")}
7.獲取post參數;
func main() { router := gin.Default() router.POST("/form_post", func(c *gin.Context) { message := c.PostForm("message") nick := c.DefaultPostForm("breaklinux", "hello gin") // 此方法能夠設置默認值 c.JSON(200, gin.H{ "status": "posted", "message": message, "nick": nick, }) }) router.Run() }
9.路由分組
func main() { router := gin.Default() // Simple group: v1 v1 := router.Group("/v1") { v1.POST("/login", loginEndpoint) v1.POST("/submit", submitEndpoint) v1.POST("/read", readEndpoint) } // Simple group: v2 v2 := router.Group("/v2") { v2.POST("/login", loginEndpoint) v2.POST("/submit", submitEndpoint) v2.POST("/read", readEndpoint) } router.Run() }