```go
func main() {
// 新建一个没有任何默认中间件的路由
r := gin.New()
// 全局中间件
// Logger 中间件将日志写入 gin.DefaultWriter,即使你将 GIN_MODE 设置为 release。
// By default gin.DefaultWriter = os.Stdout
r.Use(gin.Logger())
// Recovery 中间件会 recover 任何 panic。如果有 panic 的话,会写入 500。
r.Use(gin.Recovery())
// 你可以为每个路由添加任意数量的中间件。
r.GET("/benchmark", MyBenchLogger(), benchEndpoint)
// 认证路由组
// authorized := r.Group("/", AuthRequired())
// 和使用以下两行代码的效果完全一样:
authorized := r.Group("/")
// 路由组中间件! 在此例中,我们在 "authorized" 路由组中使用自定义创建的
// AuthRequired() 中间件
authorized.Use(AuthRequired())
{
authorized.POST("/login", loginEndpoint)
authorized.POST("/submit", submitEndpoint)
authorized.POST("/read", readEndpoint)
// 嵌套路由组
testing := authorized.Group("testing")
testing.GET("/analytics", analyticsEndpoint)
}
// 监听并在 0.0.0.0:8080 上启动服务
r.Run(":8080")
}
```
- 介绍
- 快速入门
- 基准测试
- 特性
- Jsoniter
- 示例
- AsciiJSON
- HTML 渲染
- HTTP2 server 推送
- JSONP
- Multipart/Urlencoded 绑定
- Multipart/Urlencoded 表单
- PureJSON
- Query 和 post form
- SecureJSON
- XML/JSON/YAML/ProtoBuf 渲染
- 上传文件
- 单文件
- 多文件
- 不使用默认的中间件
- 从 reader 读取数据
- 优雅地重启或停止
- 使用 BasicAuth 中间件
- 使用 HTTP 方法
- 使用中间件
- 只绑定 url 查询字符串
- 在中间件中使用 Goroutine
- 多模板
- 如何记录日志
- 定义路由日志的格式
- 将 request body 绑定到不同的结构体中
- 支持 Let's Encrypt
- 映射查询字符串或表单参数
- 查询字符串参数
- 模型绑定和验证
- 绑定 HTML 复选框
- 绑定 Uri
- 绑定查询字符串或表单数据
- 绑定表单数据至自定义结构体
- 自定义 HTTP 配置
- 自定义中间件
- 自定义验证器
- 设置和获取 Cookie
- 路由参数
- 路由组
- 运行多个服务
- 重定向
- 静态文件服务
- 静态资源嵌入
- 测试
- 用户
- FAQ