Gin 学习笔记(2)——白话理解简单处理过程

174 阅读1分钟

上一节我们简单实现了一个 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() 的某些信息对他进行更改),后续我们将结合官方使用文档,对于更多的功能拓展学习。