tinyhttp

package
v1.0.68 Latest Latest
Warning

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

Go to latest
Published: Jan 19, 2023 License: MIT Imports: 12 Imported by: 2

Documentation

Overview

Package tinyhttp provides HTTP server implementation.

Index

Constants

This section is empty.

Variables

View Source
var DefaultValidator = validator.New()

DefaultValidator is the default instance of validator.Validate.

Functions

This section is empty.

Types

type Server

type Server struct {
	*fiber.App
	// contains filtered or unexported fields
}

Server is an object representing fiber.App and implementing the tiny.Service interface.

func NewServer

func NewServer(address string, config ...*ServerConfig) *Server

NewServer creates new Server instance.

func (*Server) OnError added in v1.0.42

func (s *Server) OnError(handler func(c *fiber.Ctx, err error) error)

OnError sets a handler for requests that resulted in error.

func (*Server) OnPanic

func (s *Server) OnPanic(handler func(c *fiber.Ctx, recovered any))

OnPanic sets a handler for requests that resulted in panic.

func (*Server) Start

func (s *Server) Start() error

Start implements the interface of tiny.Service.

func (*Server) Stop

func (s *Server) Stop()

Stop implements the interface of tiny.Service.

type ServerConfig

type ServerConfig struct {
	// Network is a network type for the listener (default: "tcp").
	Network 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 (default: 5s).
	ReadTimeout time.Duration

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

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

	// 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")
	RemoteIPHeader string

	// ViewEngine is a template rendering engine for fiber (default: nil).
	ViewEngine fiber.Views

	// ViewLayout is a global layout for ViewEngine (default: "").
	ViewLayout string

	// Concurrency specifies a maximum number of concurrent connections (default: 256 * 1024).
	Concurrency int

	// BodyLimit specifies a maximum allowed size for a request body (default: 4 * 1024 * 1024).
	BodyLimit int

	// ReadBufferSize specifies a per-connection buffer size (default: 4096).
	ReadBufferSize int

	// WriteBufferSize specifies a per-connection buffer size for responses (default: 4096).
	WriteBufferSize int

	// FiberOpt allows to specify custom function that will operate directly on *fiber.Config.
	FiberOpt func(*fiber.Config)
}

ServerConfig holds a configuration for NewServer.

type ValidationError added in v1.0.21

type ValidationError struct {
	// Field is a name of the field that contains an error.
	Field string `json:"field"`

	// Tag is a name of the tag that trigger an error.
	Tag string `json:"tag"`

	// Err is an original error.
	Err validator.FieldError `json:"-"`
}

ValidationError denotes an error in payload validation.

func BindBody added in v1.0.40

func BindBody(c *fiber.Ctx, out any) []ValidationError

BindBody tries to parse provided request body and validate resulting object using the DefaultValidator.

func BindBodyForm added in v1.0.49

func BindBodyForm(c *fiber.Ctx, out any) []ValidationError

BindBodyForm tries to parse provided request Form body and validate resulting object using the DefaultValidator.

func BindBodyJSON added in v1.0.49

func BindBodyJSON(c *fiber.Ctx, out any) []ValidationError

BindBodyJSON tries to parse provided request JSON body and validate resulting object using the DefaultValidator.

func ExtractValidatorErrors added in v1.0.21

func ExtractValidatorErrors(err error) []ValidationError

ExtractValidatorErrors tries to extract an array of ValidationError from given error.

Directories

Path Synopsis
Package httpauth provides authorization middleware for HTTP.
Package httpauth provides authorization middleware for HTTP.
Package requests provides HTTP client implementation.
Package requests provides HTTP client implementation.

Jump to

Keyboard shortcuts

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