Files
PandaX/pkg/middleware/rate.go
2022-08-03 16:00:32 +08:00

26 lines
661 B
Go

package middleware
import (
"github.com/didip/tollbooth"
"github.com/emicklei/go-restful/v3"
"pandax/pkg/global"
)
/**
* @Description 添加qq群467890197 交流学习
* @Author 熊猫
* @Date 2022/1/19 8:28
**/
//Rate 限流中间件
func Rate(req *restful.Request, resp *restful.Response, chain *restful.FilterChain) {
lmt := tollbooth.NewLimiter(global.Conf.Server.Rate.RateNum, nil)
lmt.SetMessage("已经超出接口请求限制,稍后再试.")
httpError := tollbooth.LimitByRequest(lmt, resp, req.Request)
if httpError != nil {
resp.WriteErrorString(httpError.StatusCode, httpError.Message)
return
}
chain.ProcessFilter(req, resp)
}