gin是go语言常用的web框架,在go语言的web体系和微服务体系中经常会出现,所以学习gin框架在go开发中非常有必要,由于博客的篇幅限制,我将学习到的gin常用的方法写成一个系列,以便在工作和学习中使用。
一、gin的快速启动
gin的使用非常简单,只需要以下几步:
1.1、 导入gin的依赖:import “github.com/gin-gonic/gin”
- 如果使用最新的go.mod模式,只需要在go.mod文件中加入如下依赖即可
require (
github.com/gin-gonic/gin v1.9.1
}
- 如果是原来的包管理方式,则需要用如下命令导入gin的包
go get -u github.com/gin-gonic/gin
1.2、编写启动代码
package main
import (
"github.com/gin-gonic/gin"
"net/http"
)
func main() {
router := gin.Default()
router.GET("/ping", func(c *gin.Context) {
c.JSON(http.StatusOK, gin.H{
"message": "pong",
})
})
router.Run() // listen and serve on 0.0.0.0:8080
}
在gin中,使用router来注册对应的http的api,其执行的是func(*Context)类型的函数,所以在实际的开发中,我们只需要按照规则写好执行函数即可。
二、gin的url分组
所谓的url分组,指的是一组前缀相同的url,比如下面的url
http://localhost:8080/user/list
http://localhost:8080/user/add
http://localhost:8080/user/delete
上面的url中,/user/的路径是相同的,我们就可以将其视为一个分组,在进行url的注册时,只需要设置一次上层的/user/目录,下面就不需要在写这个目录,gin框架会自动加上对应的公共部分。
具体实现方式如下:
package main
import (
"github.com/gin-gonic/gin"
"net/http"
)
func main() {
router := gin.Default()
// 1、首先获得一个RouterGroup
userGroup := router.Group("/user")
// 2、在对应的userGroup中增加对应的url
userGroup.GET("/list", listUsers)
userGroup.POST("/add", addUser)
userGroup.DELETE("/delete", deleteUser)
router.Run() // listen and serve on 0.0.0.0:8080
}
func deleteUser(context *gin.Context) {
context.JSONP(http.StatusOK, gin.H{
"msssage": "deleteUser",
})
}
func addUser(context *gin.Context) {
context.JSONP(http.StatusOK, gin.H{
"msssage": "addUser",
})
}
func listUsers(context *gin.Context) {
context.JSONP(http.StatusOK, gin.H{
"msssage": "listUsers",
})
}
启动项目后,用上面的几个url分别访问,就能等到对应的信息
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/2bd47f36e581408ca52241a7a32fe1eb.png)
后记
个人总结,欢迎转载、评论、批评指正