Categorygithub.com/x-ethr/middleware
modulepackage
0.4.7
Repository: https://github.com/x-ethr/middleware.git
Documentation: pkg.go.dev

# README

middleware - HTTP Middleware

Documentation

Official godoc documentation (with examples) can be found at the Package Registry.

Usage

Add Package Dependency
go get -u github.com/x-ethr/middleware
Import & Implement

main.go

package main

import (
    "encoding/json"
    "net/http"

    "github.com/x-ethr/middleware"
    "github.com/x-ethr/middleware/name"
)

func main() {
    middlewares := middleware.Middleware()
    middlewares.Add(middleware.New().Service().Configuration(func(options *name.Settings) { options.Service = "example-service-name" }).Middleware)

    mux := http.NewServeMux()

    handler := middlewares.Handler(mux)

    mux.HandleFunc("GET /", func(w http.ResponseWriter, r *http.Request) {
        ctx := r.Context()

        value := middleware.New().Service().Value(ctx)

        var response = map[string]interface{}{
            "value": value,
        }

        w.WriteHeader(http.StatusOK)
        w.Header().Set("Content-Type", "application/json")
        json.NewEncoder(w).Encode(response)
    })

    http.ListenAndServe(":8080", handler)
}

Contributions

See the Contributing Guide for additional details on getting started.

# Packages

Package telemetrics sets a context key "telemetry" to telemetry-related value(s) (such as headers) from a given request's context.
Package cors provides middleware for adding CORS handling.
Package envoy includes middleware that stores X-Envoy-[Header] as context value(s).
Package keystore providers interface(s) for retrieving context.Context keys used for various middleware(s).
Package logs provides middleware for setting an [log/slog] logger handler.
Package name provides middleware for setting an "X-Service-Name" response header.
Package path provides middleware for adding request-specific route context.
Package rip provides real-ip information from request callers.
Package servername provides middleware for setting the default "Server" response header.
Package state is for oauth2 providers, and sets a request's [context.Context] key to a randomly generated string value.
Package telemetrics sets a context key "telemetry" to telemetry-related value(s) (such as headers) from a given request's context.
Package timeout is a middleware that cancels ctx after a given timeout and return a 504 Gateway Timeout error to the client.
Package tracing provides middleware for setting a [go.opentelemetry.io/otel/trace.Tracer] context value.
No description provided by the author
Package versioning provides http middleware for setting a [versioning.Version] context value and an "X-Service-Version" header.

# Functions

No description provided by the author
No description provided by the author

# Structs

No description provided by the author

# Interfaces

No description provided by the author