gin框架长连接_gin框架使用注意事项

本文介绍了在使用gin框架时的注意事项,包括错误处理应使用`c.AbortWithStatus`,gin的Abort系列函数,如何获取response的body以及如何获取所有请求参数。在处理错误时,可以使用`panic`结合Recovery中间件。对于长连接,重点讨论了如何在保持连接的同时记录响应内容。
摘要由CSDN通过智能技术生成

gin框架使用注意事项

本文就说下这段时间我在使用gin框架过程中遇到的问题和要注意的事情。

错误处理请求返回要使用c.Abort,不要只是return

当在controller中进行错误处理的时候,发现一个错误,往往要立即返回,这个时候要记得使用gin.Context.Abort 或者其相关的函数。

类似于:

if err != nil {

c.AbortWithStatus(500)

return

}

这个Abort函数本质是提前结束后续的handler链条,(通过将handler的下标索引直接变化为 math.MaxInt8 / 2 )但是前面已经执行过的handler链条(包括middleware等)还会继续返回。

gin的Abort系列的几个函数为:

func (c *Context) Abort()

func (c *Context) AbortWithStatus(code int)

func (c *Context) AbortWithStatusJSON(code int, jsonObj interface{})

func (c *Context) AbortWithError(code int, err error)

gin的错误处理

gin本身默认加载了Recovery()的中间件,所以在不知道如何处理error的时候,可以直接panic出去

如何获取response的body

需求来源于我要做个gin的中间件,请求进来的时候记录一下请求参数,请求出去的时候记录一下请求返回值。在记录请求返回值的时候,我就需要得到请求的返回内容。但是context里面只有一个结构&#x

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值