httputil

package
v1.1.55 Latest Latest
Warning

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

Go to latest
Published: Nov 8, 2022 License: MIT Imports: 9 Imported by: 0

Documentation

Overview

Provides HTTP server implementation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Server

type Server struct {
	*gin.Engine
	// contains filtered or unexported fields
}

Server is an object representing gin.Engine and implementing the lifecycle.Service interface.

func NewServer

func NewServer(opts ...ServerOpt) *Server

NewServer creates new Server instance.

func (*Server) OnNoRoute added in v1.1.49

func (server *Server) OnNoRoute(handler func(c *gin.Context))

OnNoRoute sets a handler for requests that cannot be routed and would end up as 404s.

func (*Server) OnPanic added in v1.1.49

func (server *Server) OnPanic(handler func(c *gin.Context, recovered any))

OnPanic sets a handler for requests that resulted in panic and would end up as 500s.

func (*Server) Start

func (server *Server) Start() error

Start implements the interface of coreutil.Service.

func (*Server) Stop

func (server *Server) Stop()

Stop implements the interface of coreutil.Service.

type ServerConfig added in v1.1.49

type ServerConfig struct {
	// Address is an address to bind server socket to (default: "0.0.0.0:8080").
	Address string

	// SecurityHeaders defines whether to include HTTP security headers to all responses or not (default: true).
	SecurityHeaders bool

	// ShutdownTimeout defines a maximal timeout of HTTP server shutdown (default: 5s).
	ShutdownTimeout time.Duration

	// TLSCert is a path to TLS certificate to use. When specified with TLSKey - enables TLS mode.
	TLSCert string

	// TLSKey is a path to TLS key to use. When specified with TLSCert - enables TLS mode.
	TLSKey string

	// TLSConfig is an optional TLS configuration to pass when using TLS mode.
	TLSConfig *tls.Config

	// ReadTimeout is a timeout used when creating underlying http server (see http.Server) (default: 5s).
	ReadTimeout time.Duration

	// ReadHeaderTimeout is a timeout used when creating underlying http server (see http.Server).
	ReadHeaderTimeout time.Duration

	// WriteTimeout is a timeout used when creating underlying http server (see http.Server) (default: 10s).
	WriteTimeout time.Duration

	// IdleTimeout is a timeout used when creating underlying http server (see http.Server) (default 30m).
	IdleTimeout time.Duration

	// MaxHeaderBytes is a value used when creating underlying http server (see http.Server).
	MaxHeaderBytes int

	// TrustedProxies is a list of CIDR address ranges that can be trusted when handling RemoteIP header.
	// (default: "10.0.0.0/8", "172.16.0.0/12", "192.168.0.0/16", "127.0.0.0/8", "fc00::/7", "::1/128")
	TrustedProxies []string

	// RemoteIPHeaders is a list of headers that overwrite the value of client's remote address.
	// (default: "X-Forwarded-For")
	RemoteIPHeaders []string
}

ServerConfig holds a configuration for NewServer.

type ServerOpt

type ServerOpt = func(*ServerConfig)

ServerOpt is an option to be specified to NewServer.

func Address

func Address(address string) ServerOpt

Address is an address to bind server socket to.

func IdleTimeout added in v1.1.50

func IdleTimeout(timeout time.Duration) ServerOpt

IdleTimeout is a timeout used when creating underlying http server (see http.Server).

func MaxHeaderBytes added in v1.1.50

func MaxHeaderBytes(maxHeaderBytes int) ServerOpt

MaxHeaderBytes is a value used when creating underlying http server (see http.Server).

func ReadHeaderTimeout added in v1.1.50

func ReadHeaderTimeout(timeout time.Duration) ServerOpt

ReadHeaderTimeout is a timeout used when creating underlying http server (see http.Server).

func ReadTimeout added in v1.1.50

func ReadTimeout(timeout time.Duration) ServerOpt

ReadTimeout is a timeout used when creating underlying http server (see http.Server).

func RemoteIPHeaders added in v1.1.50

func RemoteIPHeaders(headers []string) ServerOpt

RemoteIPHeaders is a list of headers that overwrite the value of client's remote address.

func SecurityHeaders

func SecurityHeaders(securityHeaders bool) ServerOpt

SecurityHeaders defines whether to include HTTP security headers to all responses or not.

func ShutdownTimeout

func ShutdownTimeout(timeout time.Duration) ServerOpt

ShutdownTimeout defines a maximal timeout of HTTP server shutdown.

func TLS added in v1.1.50

func TLS(cert, key string, tlsConfig ...*tls.Config) ServerOpt

TLS enables TLS mode if both cert and key point to valid TLS credentials. tlsConfig is optional.

func TrustedProxies added in v1.1.50

func TrustedProxies(trustedProxies []string) ServerOpt

TrustedProxies is a list of CIDR address ranges that can be trusted when handling RemoteIP header.

func WriteTimeout added in v1.1.50

func WriteTimeout(timeout time.Duration) ServerOpt

WriteTimeout is a timeout used when creating underlying http server (see http.Server).

Jump to

Keyboard shortcuts

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