43 lines
850 B
Go
43 lines
850 B
Go
package web
|
|
|
|
import (
|
|
"platform/web/auth"
|
|
|
|
"github.com/gofiber/contrib/otelfiber/v2"
|
|
"github.com/gofiber/fiber/v2"
|
|
"github.com/gofiber/fiber/v2/middleware/logger"
|
|
"github.com/gofiber/fiber/v2/middleware/recover"
|
|
"github.com/gofiber/fiber/v2/middleware/requestid"
|
|
"github.com/google/uuid"
|
|
"github.com/jxskiss/base62"
|
|
)
|
|
|
|
func ApplyMiddlewares(app *fiber.App) {
|
|
|
|
// recover
|
|
app.Use(recover.New(recover.Config{
|
|
EnableStackTrace: true,
|
|
}))
|
|
|
|
// logger
|
|
app.Use(logger.New(logger.Config{
|
|
Next: func(c *fiber.Ctx) bool {
|
|
return c.Path() == "/favicon.ico"
|
|
},
|
|
}))
|
|
|
|
// metric
|
|
app.Use(otelfiber.Middleware())
|
|
|
|
// request id
|
|
app.Use(requestid.New(requestid.Config{
|
|
Generator: func() string {
|
|
binary, _ := uuid.New().MarshalBinary()
|
|
return base62.EncodeToString(binary)
|
|
},
|
|
}))
|
|
|
|
// authenticate
|
|
app.Use(auth.Authenticate())
|
|
}
|