使用示例
Gin 使用示例(一):AsciiJSON
继续在 gin-demo 目录下新建一个 examples 目录用于存放示例代码,然后在该目录下运行 go mod init gin...
Gin 使用示例(二):通过自定义结构体绑定表单请求数据
src/gin-demo/examples/custom_request_struct.go: package main ...
Gin 使用示例(三):绑定 HTML 复选框 checkbox
HTML 模板 src/gin-demo/examples/templates/checkbox/color.tmpl: {{ ...
Gin 使用示例(四):绑定查询字符串或 POST 数据
示例代码(src/gin-demo/examples/request_data.go): package main impo...
Gin 使用示例(五):绑定 URL 路由参数
示例代码(src/gin-demo/examples/uri_params.go): package main import...
Gin 使用示例(六):使用 HTML 模板构建二进制文件
这里我们使用 jessevdk/go-assets 将小的资源文件从磁盘加载到内存,这对包含前端资源的应用做单个二进制文件部署非常有...
Gin 使用示例(七):控制日志输出颜色
默认情况下,控制台上输出的日志会根据检测到的 TTY 进行着色。 如果不想给日志着色,可以这么做: func main() { ...
Gin 使用示例(八):自定义 HTTP 服务器配置
可以直接使用 http.ListenAndServe() 来配置监听地址和端口以及路由器: func main() { ro...
Gin 使用示例(九):自定义日志格式
示例代码: func main() { router := gin.New() // LoggerWithFo...
Gin 使用示例(十):自定义中间件
示例代码(src/gin-demo/examples/middleware.go): package main im...
Gin 使用示例(十一):自定义表单验证器
我们还可以注册自定义的表单验证器,示例代码如下(src/gin-demo/examples/validator.go): pack...
Gin 使用示例(十二):定义路由日志格式
Gin 框架默认路由日志格式如下: [GIN-debug] POST /foo --...
Gin 使用示例(十三):中间件中使用协程的注意事项
在中间件或处理器中开启新的协程时,不应该在其中使用原生的上下文对象,而应该使用它的只读副本: func main() { r...
Gin 使用示例(十四):路由分组
示例代码: func loginEndpoint(c *gin.Context) { c.String(200, "l...
Gin 使用示例(十五):将日志信息写入文件
Gin 框架默认将日志输出到控制台,要写入指定的日志文件,可以这么做(src/gin-demo/examples/log_file....
Gin 使用示例(十六):HTML 视图模板渲染
在 Gin 框架中,可以使用 LoadHTMLGlob() 或 LoadHTMLFiles() 来渲染 HTML。 单目录 如果...
Gin 使用示例(十七):实现 HTTP/2 服务器推送
在 Go 语言中实现 HTTP/2 服务器推送:https://blog.golang.org/h2push。 注:需要 Go...
Gin 使用示例(十八):平滑重启或关闭服务器
可以使用 fvbock/endless 来替换默认的 ListenAndServe 方法,参考 https://github.com...
Gin 使用示例(十九):JSONP
使用 JSONP 可以通过另一个域名从服务器请求数据,对应的 Gin 服务端代码可以这么写: func main() { ...
Gin 使用示例(二十):字典格式的查询字符串和表单请求数据
示例代码: func main() { router := gin.Default() route...
Gin 使用示例(二十一):模型绑定和验证
可以使用模型绑定将请求数据绑定到类型,Gin 支持绑定 JSON、XML、YAML 以及标准的表单数据。 Gin 框架默认使用 g...
Gin 使用示例(二十二):Multipart/Urlencoded 绑定和数据解析
我们可以像下面这样将表单请求数据绑定到指定结构体(默认通过 Multipart/Urlencoded 进行绑定): package...
Gin 使用示例(二十三):渲染多个 HTML 模板
Gin 框架默认只使用一个 HTML 模板,如果要渲染多个 HTML 模板请参考 gin-contrib/multitemplate...
Gin 使用示例(二十四):只绑定查询字符串
使用 ShouldBindQuery 方法将只绑定查询字符串,而忽略 POST 表单数据: package main ...
Gin 使用示例(二十五):URL 路径中的参数
可选参数、必填参数示例代码: func main() { router := gin.Default() ...
Gin 使用示例(二十六):PureJSON
通常,JSON 会通过 Unicode 编码特殊的 HTML 字符,比如将 < 替换成 \u003c,这样一来会影响可读性,如...
Gin 使用示例(二十七):获取查询字符串以及 POST 表单请求数据
示例代码: func main() { router := gin.Default() route...
Gin 使用示例(二十八):查询字符串参数底层解析
示例代码: func main() { router := gin.Default() // 查询...
Gin 使用示例(二十九):重定向
Gin 框架支持内部和外部重定向: func main() { r := gin.Default() ...
Gin 使用示例(三十):运行多个服务器
示例代码(src/gin-demo/examples/multi_service.go): package main ...
Gin 使用示例(三十一):SecureJSON
使用 SecureJSON 可以防止 JSON 劫持: func main() { r := gin.Default() ...
Gin 使用示例(三十二):下载文件
示例代码: func main() { router := gin.Default() router.GET(...
Gin 使用示例(三十三):静态资源
示例代码: func main() { router := gin.Default() router.Stat...
Gin 使用示例(三十四):Cookie
示例代码: func main() { router := gin.Default() route...
Gin 使用示例(三十五):支持 Let's Encrypt
一行代码启动 LetsEncrypt HTTPS 服务器: package main import ( "log" ...
Gin 使用示例(三十六):绑定请求实体到不同结构体
通常使用 ShouldBind 绑定请求实体,底层使用的是 c.Request.Body: package main ...
Gin 使用示例(三十七):上传文件
单个文件 示例代码: func main() { router := gin.Default() // 为 ...
Gin 使用示例(三十八):使用 BasicAuth 中间件
示例代码: // 模拟一些私有数据 var secrets = gin.H{ "foo": gin.H{"ema...
Gin 使用示例(三十九):HTTP 方法
示例代码: func getting(c *gin.Context) { c.String(http.StatusOK...
Gin 使用示例(四十):使用中间件
示例代码: func main() { // 创建一个默认不使用任何中间件的路由器 r := gin.New(...
Gin 使用示例(四十一):默认不使用任何中间件
使用下面这种方式 r := gin.New() 创建路由器而不是下面这种方式: // 这种情况下默认会使用 Logger ...
Gin 使用示例(四十二):XML/JSON/YAML/ProtoBuf 渲染
示例代码: func main() { r := gin.Default() // gin.H i...
No Comments