Categorygithub.com/gin-contrib/requestid
modulepackage
1.0.5
Repository: https://github.com/gin-contrib/requestid.git
Documentation: pkg.go.dev

# README

RequestID

Run Tests codecov Go Report Card GoDoc Join the chat at https://gitter.im/gin-gonic/gin

Request ID middleware for Gin Framework. Adds an indentifier to the response using the X-Request-ID header. Passes the X-Request-ID value back to the caller if it's sent in the request headers.

Usage

Start using it

Download and install it.

go get github.com/gin-contrib/requestid

Import it in your code, then use it:

import "github.com/gin-contrib/requestid"

Config

define your custom generator function:

func main() {

  r := gin.New()

  r.Use(
    requestid.New(
      requestid.WithGenerator(func() string {
        return "test"
      }),
      requestid.WithCustomHeaderStrKey("your-customer-key"),
    ),
  )

  // Example ping request.
  r.GET("/ping", func(c *gin.Context) {
    c.String(http.StatusOK, "pong "+fmt.Sprint(time.Now().Unix()))
  })

  // Listen and Server in 0.0.0.0:8080
  r.Run(":8080")
}

Example

package main

import (
  "fmt"
  "net/http"
  "time"

  "github.com/gin-contrib/requestid"
  "github.com/gin-gonic/gin"
)

func main() {

  r := gin.New()

  r.Use(requestid.New())

  // Example ping request.
  r.GET("/ping", func(c *gin.Context) {
    c.String(http.StatusOK, "pong "+fmt.Sprint(time.Now().Unix()))
  })

  // Listen and Server in 0.0.0.0:8080
  r.Run(":8080")
}

How to get the request identifier:

// Example / request.
r.GET("/", func(c *gin.Context) {
  c.String(http.StatusOK, "id:"+requestid.Get(c))
})

You can also get the request identifier from response header:

> curl -i "http://127.0.0.1:8080"

HTTP/1.1 200 OK
Content-Type: text/plain; charset=utf-8
X-Request-ID: 77966910-3912-4193-9b74-267491c51700
Content-Length: 39

id:77966910-3912-4193-9b74-267491c51700

When http request with custom identifier, gin server return the custom identifier in response header.

> curl -i -H "X-Request-ID:test" "http://127.0.0.1:8080"

HTTP/1.1 200 OK
Content-Type: text/plain; charset=utf-8
X-Request-Id: test
Content-Length: 13

id:test

# Functions

Get returns the request identifier.
New initializes the RequestID middleware.
WithCustomHeaderStrKey set custom header key for request id.
WithGenerator set generator function.
WithHandler set handler function for request id with context.

# Type aliases

No description provided by the author
No description provided by the author
No description provided by the author
Option for queue system.