目录:
简介
Gin是一个golang的微框架,封装比较优雅,API友好,源码注释比较明确。
最近一直在学习Go语言,迅速扫了一遍《Go语言圣经》,觉得只有理论没有实践可不行,因此,很喜欢简洁的gin,就先来看这个吧。
官方demo
首先看官方demo
package main
import "github.com/gin-gonic/gin"
func main() {
r := gin.Default()
r.GET("/ping", func(c *gin.Context) {
c.JSON(200, gin.H{
"message": "pong",
})
})
r.Run() // listen and serve on 0.0.0.0:8080
}
1.1 gin.Default
// Default returns an Engine instance with the Logger and Recovery middleware already attached.
func Default() *Engine {
engine := New()
engine.Use(Logger(), Recovery())
return engine
}
这段代码主要完成了以下内容:
- 新建一个engine
- 使用默认的log、recovery中间层
1.1.1 看到New()函数
func New() *Engine {
debugPrintWARNINGNew()
engine := &Engine{
RouterGroup: RouterGroup{
Handlers: nil,
basePath: "/",
root: true,
},
FuncMap: template.FuncMap{},
RedirectTrailingSlash: true,
RedirectFixedPath: false,
HandleMethodNotAllowed: false,
ForwardedByClientIP: true,
AppEngine: defaultAppEngine,
UseRawPath: false,
UnescapePathValues: true,
MaxMultipartMemory: defaultMultipartMemory,
trees: make(methodTrees, 0, 9),
delims: render.Delims{Left: "{
{", Right: "}}"},
secureJsonPrefix: "while(1);",
}
engine.RouterGroup.engine = engine
engine.pool.New = func()

本文分析了Gin框架的官方示例,深入探讨了`gin.Default`的功能,包括创建engine,使用默认的日志和恢复中间件。接着详细解释了`engine.Use`、`gin.GET()`方法及`router.run`的执行流程,揭示了Gin如何处理路由、中间件以及启动HTTP服务器。
最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



