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() }