middleware

package
v0.7.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 31, 2025 License: Apache-2.0 Imports: 25 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var Module = fx.Module(
	"vef:middleware",
	fx.Provide(
		fx.Annotate(
			NewRequestIdMiddleware,
			fx.ResultTags(`group:"vef:app:middlewares"`),
		),
		fx.Annotate(
			NewLoggerMiddleware,
			fx.ResultTags(`group:"vef:app:middlewares"`),
		),
		fx.Annotate(
			NewRecoveryMiddleware,
			fx.ResultTags(`group:"vef:app:middlewares"`),
		),
		fx.Annotate(
			NewRequestRecordMiddleware,
			fx.ResultTags(`group:"vef:app:middlewares"`),
		),
		fx.Annotate(
			NewCorsMiddleware,
			fx.ResultTags(`group:"vef:app:middlewares"`),
		),
		fx.Annotate(
			NewContentTypeMiddleware,
			fx.ResultTags(`group:"vef:app:middlewares"`),
		),
		fx.Annotate(
			NewCompressionMiddleware,
			fx.ResultTags(`group:"vef:app:middlewares"`),
		),
		fx.Annotate(
			NewHeadersMiddleware,
			fx.ResultTags(`group:"vef:app:middlewares"`),
		),
		fx.Annotate(
			NewSpaMiddleware,
			fx.ParamTags(`group:"vef:spa"`),
			fx.ResultTags(`group:"vef:app:middlewares"`),
		),
	),
)

Functions

func NewCompressionMiddleware

func NewCompressionMiddleware() app.Middleware

NewCompressionMiddleware returns a middleware that compresses response bodies. Default compression level is used; tune if needed based on performance.

func NewContentTypeMiddleware

func NewContentTypeMiddleware() app.Middleware

NewContentTypeMiddleware ensures JSON or multipart content types for state-changing requests. It bypasses checks for GET/HEAD and allows application/json and multipart/form-data.

func NewCorsMiddleware

func NewCorsMiddleware(config *config.CorsConfig) app.Middleware

NewCorsMiddleware is a middleware that handles CORS.

func NewHeadersMiddleware

func NewHeadersMiddleware() app.Middleware

NewHeadersMiddleware returns a middleware that sets security-related response headers. It adds X-Content-Type-Options, Strict-Transport-Security (for HTTPS), and a default Cache-Control if missing.

func NewLoggerMiddleware

func NewLoggerMiddleware() app.Middleware

NewLoggerMiddleware returns a middleware that initializes a request-scoped logger. The logger is stored in fiber context via contextx.SetLogger and can be retrieved later. This middleware depends on requestid middleware to ensure request id is available.

func NewRecoveryMiddleware

func NewRecoveryMiddleware() app.Middleware

NewRecoveryMiddleware is a middleware that recovers from panics.

func NewRequestIdMiddleware

func NewRequestIdMiddleware() app.Middleware

NewRequestIdMiddleware returns a middleware that generates a request ID.

func NewRequestRecordMiddleware

func NewRequestRecordMiddleware() app.Middleware

NewRequestRecordMiddleware returns a middleware that records request metrics. It logs IP, latency (ms/μs), and status code and reports structured errors if present.

func NewSpaMiddleware added in v0.6.0

func NewSpaMiddleware(configs []*middleware.SpaConfig) app.Middleware

NewSpaMiddleware creates a new SPA middleware.

Types

type SimpleMiddleware

type SimpleMiddleware struct {
	// contains filtered or unexported fields
}

SimpleMiddleware is middleware for the app.

func (*SimpleMiddleware) Apply

func (m *SimpleMiddleware) Apply(router fiber.Router)

Apply applies the middleware to the router.

func (*SimpleMiddleware) Name

func (m *SimpleMiddleware) Name() string

Name returns the name of the middleware.

func (*SimpleMiddleware) Order

func (m *SimpleMiddleware) Order() int

Order returns the order of the middleware.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL