上一节我们简单实现了一个 ping 命令,这次,我们以业余的,通俗的方式来梳理梳理这个请求处理过程中涉及到的几个组件,知道了这些组件的“真面目”,可以更好的帮助我们在后续了解 Gin 种种功能究竟是与哪些组件相关,也更有助于我们后续去梳理深入源码。
package main
import (
"github.com/gin-gonic/gin"
)
func main() {
// r 是整个 Gin 项目的框架,如果我们将 Gin 比作一台处理 HTTP 请求的机器,
// 这一步就是从工厂中将这个机器造出来,我们要做的就是改造它,更适合我们的业务需求
r := gin.Default()
// r.GET() 或者 r.POST() 我们都肯定很熟悉了,就是用 r 去处理对应的 GET 或者 POST 请求,
// 方法中输入了两个参数,一个是 url 路由,另一个是一个方法,来处理请求
// 方法中的 ctx 参数,我们可以通俗地理解为对应路有传递过来的 HTTP 请求,
// 所以请求携带的参数信息,一定是能在这里取到的
r.GET("/ping", func(ctx *gin.Context) {
// 这是对 请求信息的处理方法,当然不一定非要是 JSON,
// 方法的第一个参数为状态码,
// gin.H 是一个 map[string]interface{}
ctx.JSON(200, gin.H{
"message": "pong",
})
})
r.Run()
}
有了一个基本的认识,一些功能我们就能自己探索了(比如说默认监听端口是 8080,我们一定可以通过修改 gin.Default() 的某些信息对他进行更改),后续我们将结合官方使用文档,对于更多的功能拓展学习。