gin是目前go生态中最流行的web框架了,简单易用。go语言的web框架都有个特点:简洁、精炼,你会发现它们不像其他的语言的框架,没有全家桶,说它是框架但又只提供了最基本的功能。
这既是优点也是缺点吧,优点是可以用最少的代码完成工作(包括框架本身的代码)不像其他语言,啥都没干呢就导了一堆东西。缺点是对新手不太友好,如果之前没有开发过web项目会比较难上手,这一点在文档和示例代码上也有所体现,也就是好像它什么都写了,但是实战的时候不知道怎么串起来。
上周找到一本《Building Distributed Applications in Gin》,这本书很好,相当于是gin的手把手教程了。接下来我会把学习过程中的一些想法、重点记录下来,方便自己查阅,也方便大家参考。
首先是装环境,go的安装看我之前写的那篇文章就行了,gin的安装很简单:
go get github.com/gin-gonic/gin
装好后,可以写代码了。打开IDE,创建一个main.go文件,输入以下代码:
package main
import "github.com/gin-gonic/gin"
func main() {
router := gin.Default()
router.GET("/", func(c *gin.Context) {
c.JSON(200, gin.H{
"message": "hello world",
})
})
router.Run()
}
然后在命令行中敲go run main.go
一个最简单的只会输出 hello world 的web服务就可以运行了。
在浏览器中输入http://localhost:8080/
就可以访问了,如果没有遇到问题的话,浏览器中会显示一个JSON格式的文本:
{"message":"hello world"}
也可以用curl发送请求,结果是一样的
curl -X GET http://localhost:8080
用go开发程序,最好与git一起使用,其实go的整个依赖管理就是依赖于git的。go在导入依赖的时候与其他语言最大的不同就在于它导入的第三方包包名一般和其源码所在的GitHub地址或自建的git托管平台地址一致。
在导入gin的时候也是这样,导入的包其实也是它在GitHub上的地址。
import "github.com/gin-gonic/gin"
所以我们在管理代码的时候最好也用git来管理,这里我用GitHub来管理,如果访问GitHub有问题的话,可以用国内的gitee。
首先在GitHub上创建一个仓库,在刚才写hello world代码的文件夹下初始化git仓库:
git init
这样一个git仓库就建好了,但现在本地仓库和GitHub上的仓库还没有关联起来。我们先创建一个go module 之后再把本地仓库和GitHub上的进行关联。
go mod init github.com/xxxxxxx/hello-world
go mod tidy
go mod init
用来创建一个go的module,go mod tidy
用于维护module
中的各种依赖。
之后就可以把本地仓库和远程仓库关联起来了:
git add .
git commit -m "hello world"
git branch -M main
git remote add origin [email protected]:xxxxxxx/hello-world.git
git push -u origin main
如果你打算把自己写的代码作为库供大家使用,只需要像上面那样建个git仓库并用module来组织,使用时只要import代码的GitHub仓库链接就可以了。
欢迎关注我的微信公众号 江达小记