Skip to main content
Version: Next

ETag

ETag middleware for Fiber that helps caches validate responses and saves bandwidth by avoiding full retransmits when content is unchanged.

Signatures​

func New(config ...Config) fiber.Handler

Examples​

Import the middleware package:

import (
"github.com/gofiber/fiber/v3"
"github.com/gofiber/fiber/v3/middleware/etag"
)

Once your Fiber app is initialized, use the middleware like this:

// Initialize default config
app.Use(etag.New())

// GET / -> ETag: "13-1831710635"
app.Get("/", func(c fiber.Ctx) error {
return c.SendString("Hello, World!")
})

// Or extend your config for customization
app.Use(etag.New(etag.Config{
Weak: true,
}))

// GET / -> ETag: W/"13-1831710635"
app.Get("/", func(c fiber.Ctx) error {
return c.SendString("Hello, World!")
})

Entity tags in requests must be quoted per RFC 9110. For example:

If-None-Match: "example-etag"

Config​

PropertyTypeDescriptionDefault
WeakboolEnables weak validators. Weak ETags are easier to generate but less reliable for comparisons.false
Nextfunc(fiber.Ctx) boolNext defines a function to skip this middleware when it returns true.nil

Default Config​

var ConfigDefault = Config{
Next: nil,
Weak: false,
}