gin 处理json_使用 Go 处理中间件

本文介绍了 Gin 框架的中间件功能,包括中间件的定义、使用位置和注意事项,并通过示例展示了如何创建设置请求 ID 和日志记录的中间件,强调了中间件顺序和数量对性能的影响。
摘要由CSDN通过智能技术生成

1a44a58994d6e146b966c87fd8447b33.png
  • 简介
  • gin 的中间件
  • 创建中间件
  • 总结
  • 当前部分的代码

简介

开发 web 应用的时候, 很多地方都需要使用中间件来统一处理一些任务, 比如记录日志, 登录校验等.

gin 也提供了中间件功能.

gin 的中间件

在项目创建之初, 就已经导入了一些中间件, 当时没有仔细介绍.

g.Use(gin.Logger())
g.Use(gin.Recovery())
g.Use(middleware.NoCache())
g.Use(middleware.Options())
g.Use(middleware.Secure())

前面两个是 gin 自带的中间件, 分别是日志记录和错误恢复. 后面三个是设置一些 header, 具体是阻止缓存响应, 响应 options 请求, 以及浏览器安全设置.

// 阻止缓存响应
func NoCache() gin.HandlerFunc {
    
    return func(ctx *gin.Context) {
    
        ctx.Header("Cache-Control", "no-cache, no-store, max-age=0, must-revalidate, value")
        ctx.Header("Expires", "Thu, 01 Jan 1970 00:00:00 GMT")
        ctx.Header("Last-Modified", time.Now().UTC().Format(http.TimeFormat))
        ctx.Next()
    }
}

// 响应 options 请求, 并退出
func Options() gin.HandlerFunc {
    
    return func(ctx *gin.Context) {
    
        if ctx.Request.Method != "OPTIONS" {
    
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值