任何一门技术或者框架都有他独特的定位,Gin 这个框架它更擅长的是拿来开发 API 服务。
如果你用他来开发门户网站可能不会特别顺手。
这里放出他们的 Github 官方地址:https://github.com/gin-gonic/gin
以及他们的中文文档地址:https://gin-gonic.com/zh-cn/docs
说下写这个系列文章的初衷和定位:
这个系列的文章适合有一定基础的新手小白阅读。
如果你已经有一些开发经验了,你就可以略过了,敬请期待我们其他系列的文章。
因为关注我的同学们,大家的开发能力都不太一样,所以我们不光要照顾中级的同学,还要照顾初级的同学。
我希望看完此系列的文章之后,大家看完能非常熟悉的使用 gin 这个框架来完成一些基本的 API 服务开发。
既然是 API 的开发,肯定就不会出现有 HTML 页面渲染这些知识点了,如果你是想门户网站开发,这系列文章可能不太适合你。
太复杂的业务逻辑不太适合入门,所以我们选择了一个比较简单的常见业务,开发一个基础功能的留言板。
这里面会涉及表单验证、数据库等知识点。
我们拒绝照搬官方文档,争取每篇文章都有干货。
这里我们统一使用 GoMod 来进行包管理。
如果对 GoMod 不太熟悉的同学可以查看往期的文章,学习下 GoMod 的使用。
首先我需要新建一个用于存放工程的文件夹,然后在这个文件夹下面初始化我们的 GoMod 模块和项目。
# 初始化我们的 go mod 模块
go mod init gin-message
# 拉 gin 框架到工程
go get github.com/gin-gonic/gin
执行完毕后,你就能看到你的工程文件夹里面多了两个文件,分别是:go.mod 和 go.sum。
到这里我们的 Gin 就已经安装好了。
目前我们使用到的 gin 版本是 v1.7.4,Go 的版本是 1.17。
文章里面的代码运行环境全是在 Mac 系统下。
如果你是用的 Windows 发现有差异的,欢迎留言告诉我们。
开发工具使用的 GoLand。
在我们的工程目录下面新建一个入口文件为 main.go 文件,你先依葫芦画瓢写入下面的代码,先来一个 helo :
package main
import "github.com/gin-gonic/gin"
func main() {
r := gin.Default()
r.GET("/", func(c *gin.Context) {
c.Writer.Write([]byte("hello"))
})
r.Run(":8080") // 监听并在 0.0.0.0:8080 上启动服务
}
整体运行结果如下:
左边是代码,右边浏览器访问效果。
实际开发中很少直接返回字符串,而是返回 json,所以我们修改下返回的数据:
r.GET("/", func(c *gin.Context) {
c.JSON(200, map[string]interface{}{
"msg": "操作成功",
})
})
这样访问时返回的就是 json 了:
这样的代码还可以这样写效果是一样的:
r.GET("/", func(c *gin.Context) {
c.JSON(http.StatusOK, gin.H{
"msg": "操作成功",
})
})
http.StatusOK 是对状态码 200 的一个封装,gin.h 底层也是对 map 的封装,感兴趣可以看下。
下一篇我们写怎么处理路由,敬请期待!