type
status
date
slug
summary
tags
category
icon
password
首先先要初始化go modules:
go mod init your_project_name
然后通过命令下载gin
go get -u github.com/gin-gonic/gin
可以用代理快一点: go env -w GOPROXY=https://goproxy.cn,direct
先用一个简单的来跑一下,了解一下是怎么样的:
带路径参数的:
处理查询参数
中间件
想象你是一个餐厅服务员,负责记录客人的用餐情况。这段代码就像是你的工作流程:
- t := time.Now()
这就像你看了一眼时钟,记下客人进店的时间。
- c.Set("example", "12345")
这就像你在客人的单子上写下了他们的桌号(比如 12345)。
c.Next()这相当于你让厨房开始准备食物,而你去招呼其他客人了。
- latency := time.Since(t)
客人吃完后,你再看一眼时钟,计算他们在餐厅待了多长时间。5. status := c.Writer.Status()这就像你记录客人是否满意(比如 200 表示很满意,404 表示菜品缺货等)。
- example := c.MustGet("example").(string)
这相当于你再次查看单子,确认桌号。.MustGet 就是你坚信桌号一定写在单子上,.(string) 则是确认这个桌号是用数字写的。整个过程就是:
- 记录客人来的时间
- 记下他们的桌号
- 让厨房准备食物
4. 等食物准备好,客人吃完
- 计算客人在餐厅待的时间
- 记录客人的满意度
- 再次确认桌号
这个"服务员"(中间件)不仅记录了整个用餐过程,还能在需要的时候查看之前记录的信息(比如桌号)。这样,餐厅的其他工作人员也能获取这些信息,保证服务的连贯性。
r.Use(Logger())意思就是:
- 中间件的应用:
r.Use(Logger()) 告诉 Gin 框架在处理任何请求之前都要先运行 Logger() 中间件。
- 全局中间件:
这种方式应用的中间件是全局的,意味着它会对所有的路由生效。3. 执行顺序:
- 当一个请求到达时,首先会执行这个 Logger() 中间件。
- 然后才会执行特定路由的处理函数。
- 中间件的作用:
在这个例子中,Logger() 中间件会记录每个请求的处理时间和状态码
基于gin的todoList也完成
首先是一般都是用default的模板比较方便。
然后看看这几个restful 风格的api是怎么样的,要注意点的其实不多。