Files
Juan Calderon-PerezGitHubcoderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
e4737ee937 📒 docs: Full audit of documentation (#3717)
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2025-08-29 12:34:19 +02:00

1.7 KiB

id
id
etag

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

Property Type Description Default
Weak bool Enables weak validators. Weak ETags are easier to generate but less reliable for comparisons. false
Next func(fiber.Ctx) bool Next defines a function to skip this middleware when it returns true. nil

Default Config

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