Skip to content

Middleware

Zinc middleware is ordinary func(*zinc.Context) error code. Apply it to the whole app, a route group, or one endpoint.

import "github.com/0mjs/zinc/middleware"
app.Use(
middleware.RequestID(),
middleware.RequestLogger(),
middleware.Recover(),
)

These are the pieces most services add first.

Use app middleware for every request:

app.Use(middleware.RequestID(), middleware.RequestLogger())

Use group middleware for a route family:

api := app.Group("/api")
api.Use(middleware.JWT(keyFunc))

Use route middleware for one endpoint:

app.Post("/exports", middleware.RateLimiter(), startExport)

Read Groups and Middleware for execution order and c.Next(), or Errors for returned middleware errors.