参考:https://www.tizi365.com/archives/79.html
package main
import (
"net/http"
"github.com/labstack/echo"
)
//记录访问量
var totalRequests = 0
//中间件函数
func Count(next echo.HandlerFunc) echo.HandlerFunc {
return func(c echo.Context) error {
//在这里处理拦截请求的逻辑
//累计访问量
totalRequests++
//在响应头中输出访问量
c.Response().Header().Add("requests", fmt.Sprintf("%d", totalRequests))
//执行下一个中间件或者执行控制器函数, 然后返回执行结果
return next(c)
}
}
func main() {
//初始化echo实例
e := echo.New()
//注册中间件
e.Use(Count)
e.GET("/", func(c echo.Context) error {
return c.String(http.StatusOK, "Hello, World!")
})
e.Logger.Fatal(e.Start(":1323"))
}