一、简介:
Gin是Go语言的一个微框架,也是是一个用 Go (Golang) 编写的 HTTP Web 框架,封装比较优雅,API相对友好。Gin具有性能优异和灵活快速等优点。它具有类似 Martini 的 API,但性能比 Martini 快 40 倍。并且支持中间件、Crash 处理、JSON 验证、路由组、错误管理、内置渲染、可扩展性等….
二、Gin安装
$ go get -u github.com/gin-gonic/gin
引用方式:
import "github.com/gin-gonic/gin"
三、使用Gin实现http服务器
package main import "github.com/gin-gonic/gin" func main() { router := gin.Default() router.GET("/hello", func(c *gin.Context) { c.JSON(200, gin.H{ "message": "heelo world!", }) }) router.Run()//默认127.0.0.1:8080上启动服务 }
直接先运行
go mod tidy //再执行 go run main.go
启动程序
这样则表示调用成功。
四、路由和控制器
router.GET("/account/:name",func(c *gin.Context){ name:=c.Param("name") c.String(http.StatusOK, "hello %s", name) })
注️:冒号”:”加上一个参数组成路由参数,而且可以使用c.Param方法都去值。
http请求方法:常用的http请求方法有下面4种:GET、POST、PUT、DELETE
带星号* 模糊匹配参数的url路径
星号代表匹配任意路径的意思, 必须在*号后面指定一个参数名,后面可以通过这个参数获取*号匹配的内容。
router.GET("/account/:name/*act",func(c *gin.Context){ name:=c.Param("name") act := c.Param("act") msg := name+" is "+ act c.String(http.StatusOK, "hello %s", msg) })
五、Gin中间件
例如我们设定了一个AuthMiddle权限中间件
我们就可以在接口中这么写
router.GET("/account",AuthMiddle(),func(c *gin.Context){ name:=c.Param("name") c.String(http.StatusOK, "hello %s", name) })
这样可以实现横切关注点问题,通常对于记录Log,error handler和接口鉴权等问题。
六、路由
比如:
//实例化gin实例 r := gin.Default() //post请求 r.POST("/account", SendUser) //get请求: r.GET("/account/:id", GetUserInfo) //put请求 r.PUT("/account/:id", UpdateUser) //delete请求 r.DELETE("/account/:id", DelUser)
分组管理
r := gin.Default() apiv1 := r.Group("/api/v1") apiv1.Use(jwt.JWT()) { apiv1.GET("/tags", v1.GetTags) apiv1.POST("/tags", v1.AddTag) apiv1.PUT("/tags/:id", v1.EditTag) apiv1.DELETE("/tags/:id", v1.DelTag) }
结尾:
学习永无止境,有喜欢学习golang的朋友,具体可以参考官方文档进一步学习Gin这个Web框架。
Gin官方文档gin-gonic.com/zh-cn/docs/introduction/
来源链接:https://www.cnblogs.com/ggtop/p/18881543
© 版权声明
本站所有资源来自于网络,仅供学习与参考,请勿用于商业用途,否则产生的一切后果将由您(转载者)自己承担!
如有侵犯您的版权,请及时联系3500663466#qq.com(#换@),我们将第一时间删除本站数据。
如有侵犯您的版权,请及时联系3500663466#qq.com(#换@),我们将第一时间删除本站数据。
THE END
暂无评论内容