1
0
mirror of https://github.com/gofiber/fiber.git synced 2025-02-23 08:04:10 +00:00
fiber/middleware/request_id.md
2020-06-08 05:48:40 +02:00

1.4 KiB

RequestID

Adds an indentifier to the response using the X-Request-ID header

Example

package main

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

func main() {
  app := fiber.New()

  // Default
  app.Use(middleware.RequestID())

  // Custom Header
  app.Use(middleware.RequestID("X-Custom-Header"))
  
  // Custom Config
  app.Use(middleware.RequestID(middleware.RequestIDConfig{
    Next: func(ctx *fiber.Ctx) bool {
      return ctx.Method() != fiber.MethodPost
    },
    Header: "X-Custom-Header",
    Generator: func() string {
      return "1234567890"
    }
  }))

  app.Listen(3000)
}

Signatures

func RequestID(header ...string) fiber.Handler {}
func RequestIDWithConfig(config RequestIDConfig) fiber.Handler {}

Config

type RequestIDConfig struct {		
  // Next defines a function to skip this middleware.
  Next func(ctx *fiber.Ctx) bool

  // Header is the header key where to get/set the unique ID
  // Optiona. Defaults: X-Request-ID
  Header string

  // Generator defines a function to generate the unique identifier.
  // Optional. Default: func() string {
  //   return utils.UUID()
  // }
  Generator func() string
}

Default Config

var RequestIDConfigDefault = RequestIDConfig{
	Next:   nil,
	Header: fiber.HeaderXRequestID,
	Generator: func() string {
		return utils.UUID()
	},
}