公式ドキュメントを参考に今回はアクセスの回数をログに出力する middleware を実装する。
middleware は echo.HandlerFunc
を返す関数を作れば良さそう。
package main
import (
"fmt"
"sync"
"github.com/labstack/echo/v4"
)
type Counter struct {
mutex sync.Mutex
value int
}
var counter = new(Counter)
func accessCounter(next echo.HandlerFunc) echo.HandlerFunc {
return func(c echo.Context) error {
counter.mutex.Lock()
counter.value++
counter.mutex.Unlock()
fmt.Println(counter.value)
return next(c)
}
}
func main() {
e := echo.New()
e.Use(accessCounter)
e.Start(":8080")
}