middleware

package
v1.0.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 3, 2023 License: BSD-3-Clause Imports: 12 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	// DefaultCORSConfig is the default CORS middleware config.
	DefaultCORSConfig = CORSConfig{
		Skipper:      DefaultSkipper,
		AllowOrigins: []string{"*"},
		AllowMethods: []string{
			http.MethodGet,
			http.MethodHead,
			http.MethodPut,
			http.MethodPatch,
			http.MethodPost,
			http.MethodDelete,
		},
	}
)
View Source
var (
	// DefaultRequestIDConfig is the default RequestID middleware config.
	DefaultRequestIDConfig = RequestIDConfig{
		Generator: func() string {
			return "be-" + ksuid.New().String()
		},
	}
)

Functions

func CORS

func CORS(next http.Handler) http.Handler

CORS returns a Cross-Origin Resource Sharing (CORS) middleware. See: https://developer.mozilla.org/en/docs/Web/HTTP/Access_control_CORS

func CORSWithConfig

func CORSWithConfig(next http.Handler, config *CORSConfig) http.Handler

CORSWithConfig returns a Cross-Origin Resource Sharing (CORS) middleware. nolint:gocyclo

func DefaultSkipper

func DefaultSkipper(res http.ResponseWriter, req *http.Request) bool

DefaultSkipper returns false which processes the middleware.

func RemoveTrailingSlash

func RemoveTrailingSlash(next http.Handler) http.Handler

RemoveTrailingSlash returns a root level (before router) middleware which removes a trailing slash from the request URI.

func RequestID

func RequestID(next http.Handler) http.Handler

RequestID returns a X-Request-ID middleware. Generate an uuid if request header X-Request-ID is empty. Prefix `be-` means it was generated by server instead of client.

func RequestIDWithConfig

func RequestIDWithConfig(next http.Handler, config RequestIDConfig) http.Handler

RequestIDWithConfig returns a X-Request-ID middleware with config.

Types

type CORSConfig

type CORSConfig struct {
	// Skipper defines a function to skip middleware.
	Skipper Skipper

	// AllowOrigin defines a list of origins that may access the resource.
	// Optional. Default value []string{"*"}.
	AllowOrigins []string `yaml:"allow_origins"`

	// AllowMethods defines a list methods allowed when accessing the resource.
	// This is used in response to a preflight request.
	// Optional. Default value DefaultCORSConfig.AllowMethods.
	AllowMethods []string `yaml:"allow_methods"`

	// AllowHeaders defines a list of request headers that can be used when
	// making the actual request. This is in response to a preflight request.
	// Optional. Default value []string{}.
	AllowHeaders []string `yaml:"allow_headers"`

	// AllowCredentials indicates whether or not the response to the request
	// can be exposed when the credentials flag is true. When used as part of
	// a response to a preflight request, this indicates whether or not the
	// actual request can be made using credentials.
	// Optional. Default value false.
	AllowCredentials bool `yaml:"allow_credentials"`

	// ExposeHeaders defines a whitelist headers that clients are allowed to
	// access.
	// Optional. Default value []string{}.
	ExposeHeaders []string `yaml:"expose_headers"`

	// MaxAge indicates how long (in seconds) the results of a preflight request
	// can be cached.
	// Optional. Default value 0.
	MaxAge int `yaml:"max_age"`
}

CORSConfig defines the config for CORS middleware.

type LogOptions

type LogOptions struct {
	Formatter logrus.Formatter
}

LogOptions logging middleware options

type LoggingMiddleware

type LoggingMiddleware struct {
	// contains filtered or unexported fields
}

LoggingMiddleware is a middleware handler that logs the request as it goes in and the response as it goes out.

func NewLogger

func NewLogger(opts ...LogOptions) *LoggingMiddleware

NewLogger returns a new *LoggingMiddleware, yay!

func (*LoggingMiddleware) Middleware

func (m *LoggingMiddleware) Middleware(next http.Handler) http.Handler

Middleware implement mux middleware interface

type RequestIDConfig

type RequestIDConfig struct {
	// Generator defines a function to generate an ID.
	// Optional. Default value random.String(32).
	Generator func() string
}

RequestIDConfig defines the config for RequestID middleware.

type Skipper

type Skipper func(res http.ResponseWriter, req *http.Request) bool

Skipper defines a function to skip middleware. Returning true skips processing the middleware.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL