http

package
v0.72.0 Latest Latest
Warning

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

Go to latest
Published: Sep 16, 2022 License: Apache-2.0 Imports: 24 Imported by: 0

Documentation

Overview

Package http provides an HTTP component with included observability.

Index

Constants

View Source
const MetricsPath = "/metrics"

MetricsPath definition.

Variables

View Source
var (
	// DefaultAliveCheck return always live.
	//
	// Deprecated: Please use the new v2 package.
	// This package is frozen and no new functionality will be added.
	DefaultAliveCheck = func() AliveStatus { return Alive }
	// DefaultReadyCheck return always ready.
	//
	// Deprecated: Please use the new v2 package.
	// This package is frozen and no new functionality will be added.
	DefaultReadyCheck = func() ReadyStatus { return Ready }
)

Functions

func ExtractParams added in v0.42.0

func ExtractParams(r *http.Request) map[string]string

ExtractParams extracts dynamic URL parameters using httprouter's functionality.

Types

type AliveCheckFunc deprecated

type AliveCheckFunc func() AliveStatus

AliveCheckFunc defines a function type for implementing a liveness check.

Deprecated: Please use the new v2 package. This package is frozen and no new functionality will be added.

type AliveStatus deprecated

type AliveStatus int

AliveStatus type representing the liveness of the service via HTTP component.

Deprecated: Please use the new v2 package. This package is frozen and no new functionality will be added.

const (
	// Alive represents a state defining an Alive state.
	Alive AliveStatus = 1
	// Unresponsive represents a state defining a Unresponsive state.
	Unresponsive AliveStatus = 2

	// AlivePath of the service.
	AlivePath = "/alive"
)

type Builder deprecated

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

Builder gathers all required and optional properties, in order to construct an HTTP component.

Deprecated: Please use the new v2 package. This package is frozen and no new functionality will be added.

func NewBuilder deprecated

func NewBuilder() *Builder

NewBuilder initiates the HTTP component builder chain. The builder instantiates the component using default values for HTTP Port, Alive/Ready check functions and Read/Write timeouts.

Deprecated: Please use the new v2 package. This package is frozen and no new functionality will be added.

func (*Builder) Create

func (cb *Builder) Create() (*Component, error)

Create constructs the HTTP component by applying the gathered properties.

func (*Builder) WithAliveCheckFunc

func (cb *Builder) WithAliveCheckFunc(acf AliveCheckFunc) *Builder

WithAliveCheckFunc sets the AliveCheckFunc used by the HTTP component.

func (*Builder) WithDeflateLevel added in v0.49.0

func (cb *Builder) WithDeflateLevel(level int) *Builder

WithDeflateLevel sets the level of compression for Deflate; based on https://golang.org/pkg/compress/flate/ Levels range from 1 (BestSpeed) to 9 (BestCompression); higher levels typically run slower but compress more. Level 0 (NoCompression) does not attempt any compression; it only adds the necessary DEFLATE framing. Level -1 (DefaultCompression) uses the default compression level. Level -2 (HuffmanOnly) will use Huffman compression only, giving a very fast compression for all types of input, but sacrificing considerable compression efficiency.

func (*Builder) WithMiddlewares

func (cb *Builder) WithMiddlewares(mm ...middleware.Func) *Builder

WithMiddlewares adds middlewares to the HTTP component.

func (*Builder) WithPort

func (cb *Builder) WithPort(p int) *Builder

WithPort sets the port used by the HTTP component.

func (*Builder) WithReadTimeout

func (cb *Builder) WithReadTimeout(rt time.Duration) *Builder

WithReadTimeout sets the Read Timeout for the HTTP component.

func (*Builder) WithReadyCheckFunc

func (cb *Builder) WithReadyCheckFunc(rcf ReadyCheckFunc) *Builder

WithReadyCheckFunc sets the ReadyCheckFunc used by the HTTP component.

func (*Builder) WithRoutesBuilder

func (cb *Builder) WithRoutesBuilder(rb *RoutesBuilder) *Builder

WithRoutesBuilder adds routes builder to the HTTP component.

func (*Builder) WithSSL

func (cb *Builder) WithSSL(c, k string) *Builder

WithSSL sets the filenames for the Certificate and Keyfile, in order to enable SSL.

func (*Builder) WithShutdownGracePeriod added in v0.43.1

func (cb *Builder) WithShutdownGracePeriod(gp time.Duration) *Builder

WithShutdownGracePeriod sets the Shutdown Grace Period for the HTTP component.

func (*Builder) WithUncompressedPaths added in v0.49.0

func (cb *Builder) WithUncompressedPaths(r ...string) *Builder

WithUncompressedPaths specifies which routes should be excluded from compression Any trailing slashes are trimmed, so we match both /metrics/ and /metrics?seconds=30.

func (*Builder) WithWriteTimeout

func (cb *Builder) WithWriteTimeout(wt time.Duration) *Builder

WithWriteTimeout sets write timeout for the HTTP component.

type Component deprecated

type Component struct {
	sync.Mutex
	// contains filtered or unexported fields
}

Component implementation of HTTP.

Deprecated: Please use the new v2 package. This package is frozen and no new functionality will be added.

func (*Component) Run

func (c *Component) Run(ctx context.Context) error

Run starts the HTTP server.

type Error deprecated

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

Error defines an abstract struct that can represent several types of HTTP errors.

Deprecated: Please use the new v2 package. This package is frozen and no new functionality will be added.

func NewError deprecated

func NewError() *Error

NewError creates a new error with default Internal Server Error payload.

Deprecated: Please use the new v2 package. This package is frozen and no new functionality will be added.

func NewErrorWithCodeAndPayload deprecated

func NewErrorWithCodeAndPayload(code int, payload interface{}) *Error

NewErrorWithCodeAndPayload creates a fully customizable error with the specified status code and payload.

Deprecated: Please use the new v2 package. This package is frozen and no new functionality will be added.

func NewForbiddenError deprecated

func NewForbiddenError() *Error

NewForbiddenError creates a new forbidden error with default payload.

Deprecated: Please use the new v2 package. This package is frozen and no new functionality will be added.

func NewForbiddenErrorWithPayload deprecated

func NewForbiddenErrorWithPayload(payload interface{}) *Error

NewForbiddenErrorWithPayload creates a new forbidden error with the specified payload.

Deprecated: Please use the new v2 package. This package is frozen and no new functionality will be added.

func NewNotFoundError deprecated

func NewNotFoundError() *Error

NewNotFoundError creates a new not found error with default payload.

Deprecated: Please use the new v2 package. This package is frozen and no new functionality will be added.

func NewNotFoundErrorWithPayload deprecated

func NewNotFoundErrorWithPayload(payload interface{}) *Error

NewNotFoundErrorWithPayload creates a new not found error with the specified payload.

Deprecated: Please use the new v2 package. This package is frozen and no new functionality will be added.

func NewServiceUnavailableError deprecated

func NewServiceUnavailableError() *Error

NewServiceUnavailableError creates a new service unavailable error with default payload.

Deprecated: Please use the new v2 package. This package is frozen and no new functionality will be added.

func NewServiceUnavailableErrorWithPayload deprecated

func NewServiceUnavailableErrorWithPayload(payload interface{}) *Error

NewServiceUnavailableErrorWithPayload creates a new service unavailable error with the specified payload.

Deprecated: Please use the new v2 package. This package is frozen and no new functionality will be added.

func NewUnauthorizedError deprecated

func NewUnauthorizedError() *Error

NewUnauthorizedError creates a new validation error with default payload.

Deprecated: Please use the new v2 package. This package is frozen and no new functionality will be added.

func NewUnauthorizedErrorWithPayload deprecated

func NewUnauthorizedErrorWithPayload(payload interface{}) *Error

NewUnauthorizedErrorWithPayload creates a new unauthorized error with the specified payload.

Deprecated: Please use the new v2 package. This package is frozen and no new functionality will be added.

func NewValidationError deprecated

func NewValidationError() *Error

NewValidationError creates a new validation error with default payload.

Deprecated: Please use the new v2 package. This package is frozen and no new functionality will be added.

func NewValidationErrorWithPayload deprecated

func NewValidationErrorWithPayload(payload interface{}) *Error

NewValidationErrorWithPayload creates a new validation error with the specified payload.

Deprecated: Please use the new v2 package. This package is frozen and no new functionality will be added.

func (*Error) Error

func (e *Error) Error() string

Error returns the actual message of the error.

func (*Error) WithHeaders added in v0.56.0

func (e *Error) WithHeaders(headers map[string]string) *Error

WithHeaders adds headers to the error which will be added to the http response.

type Header map[string]string

Header is the http header representation as a map of strings

Deprecated: Please use the new v2 package. This package is frozen and no new functionality will be added.

type ProcessorFunc deprecated

type ProcessorFunc func(context.Context, *Request) (*Response, error)

ProcessorFunc definition of a function type for processing sync requests.

Deprecated: Please use the new v2 package. This package is frozen and no new functionality will be added.

type ReadyCheckFunc deprecated

type ReadyCheckFunc func() ReadyStatus

ReadyCheckFunc defines a function type for implementing a readiness check.

Deprecated: Please use the new v2 package. This package is frozen and no new functionality will be added.

type ReadyStatus deprecated

type ReadyStatus int

ReadyStatus type.

Deprecated: Please use the new v2 package. This package is frozen and no new functionality will be added.

const (
	// Ready represents a state defining a Ready state.
	Ready ReadyStatus = 1
	// NotReady represents a state defining a NotReady state.
	NotReady ReadyStatus = 2

	// ReadyPath of the service.
	ReadyPath = "/ready"
)

type Request deprecated

type Request struct {
	Fields  map[string]string
	Raw     io.Reader
	Headers Header
	// contains filtered or unexported fields
}

Request definition of the sync request model.

Deprecated: Please use the new v2 package. This package is frozen and no new functionality will be added.

func NewRequest deprecated

func NewRequest(f map[string]string, r io.Reader, h map[string]string, d encoding.DecodeFunc) *Request

NewRequest creates a new request.

Deprecated: Please use the new v2 package. This package is frozen and no new functionality will be added.

func (*Request) Decode

func (r *Request) Decode(v interface{}) error

Decode the raw data by using the provided decoder.

type Response deprecated

type Response struct {
	Payload interface{}
	Header  Header
}

Response definition of the sync Response model.

Deprecated: Please use the new v2 package. This package is frozen and no new functionality will be added.

func NewResponse

func NewResponse(p interface{}) *Response

NewResponse creates a new Response.

type Route

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

Route definition of an HTTP route.

func (Route) Handler added in v0.40.1

func (r Route) Handler() http.HandlerFunc

Handler returns route handler function.

func (Route) Method added in v0.40.1

func (r Route) Method() string

Method returns route method value (GET/POST/...).

func (Route) Middlewares added in v0.40.1

func (r Route) Middlewares() []middleware.Func

Middlewares returns route middlewares.

func (Route) Path added in v0.40.1

func (r Route) Path() string

Path returns route path value.

type RouteBuilder deprecated

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

RouteBuilder for building a route.

Deprecated: Please use the new v2 package. This package is frozen and no new functionality will be added.

func NewConnectRouteBuilder deprecated added in v0.47.0

func NewConnectRouteBuilder(path string, processor ProcessorFunc) *RouteBuilder

NewConnectRouteBuilder constructor.

Deprecated: Please use the new v2 package. This package is frozen and no new functionality will be added.

func NewDeleteRouteBuilder deprecated added in v0.47.0

func NewDeleteRouteBuilder(path string, processor ProcessorFunc) *RouteBuilder

NewDeleteRouteBuilder constructor.

Deprecated: Please use the new v2 package. This package is frozen and no new functionality will be added.

func NewFileServer deprecated added in v0.54.0

func NewFileServer(path string, assetsDir string, fallbackPath string) *RouteBuilder

NewFileServer constructor.

Deprecated: Please use the new v2 package. This package is frozen and no new functionality will be added.

func NewGetRouteBuilder deprecated added in v0.47.0

func NewGetRouteBuilder(path string, processor ProcessorFunc) *RouteBuilder

NewGetRouteBuilder constructor

Deprecated: Please use the new v2 package. This package is frozen and no new functionality will be added.

func NewHeadRouteBuilder deprecated added in v0.47.0

func NewHeadRouteBuilder(path string, processor ProcessorFunc) *RouteBuilder

NewHeadRouteBuilder constructor.

Deprecated: Please use the new v2 package. This package is frozen and no new functionality will be added.

func NewOptionsRouteBuilder deprecated added in v0.47.0

func NewOptionsRouteBuilder(path string, processor ProcessorFunc) *RouteBuilder

NewOptionsRouteBuilder constructor.

Deprecated: Please use the new v2 package. This package is frozen and no new functionality will be added.

func NewPatchRouteBuilder deprecated added in v0.47.0

func NewPatchRouteBuilder(path string, processor ProcessorFunc) *RouteBuilder

NewPatchRouteBuilder constructor.

Deprecated: Please use the new v2 package. This package is frozen and no new functionality will be added.

func NewPostRouteBuilder deprecated added in v0.47.0

func NewPostRouteBuilder(path string, processor ProcessorFunc) *RouteBuilder

NewPostRouteBuilder constructor.

Deprecated: Please use the new v2 package. This package is frozen and no new functionality will be added.

func NewPutRouteBuilder deprecated added in v0.47.0

func NewPutRouteBuilder(path string, processor ProcessorFunc) *RouteBuilder

NewPutRouteBuilder constructor.

Deprecated: Please use the new v2 package. This package is frozen and no new functionality will be added.

func NewRawRouteBuilder deprecated

func NewRawRouteBuilder(path string, handler http.HandlerFunc) *RouteBuilder

NewRawRouteBuilder constructor.

Deprecated: Please use the new v2 package. This package is frozen and no new functionality will be added.

func NewRouteBuilder deprecated

func NewRouteBuilder(path string, processor ProcessorFunc) *RouteBuilder

NewRouteBuilder constructor.

Deprecated: Please use the new v2 package. This package is frozen and no new functionality will be added.

func NewTraceRouteBuilder deprecated added in v0.47.0

func NewTraceRouteBuilder(path string, processor ProcessorFunc) *RouteBuilder

NewTraceRouteBuilder constructor.

Deprecated: Please use the new v2 package. This package is frozen and no new functionality will be added.

func (*RouteBuilder) Build

func (rb *RouteBuilder) Build() (Route, error)

Build a route.

func (*RouteBuilder) MethodConnect

func (rb *RouteBuilder) MethodConnect() *RouteBuilder

MethodConnect HTTP method.

func (*RouteBuilder) MethodDelete

func (rb *RouteBuilder) MethodDelete() *RouteBuilder

MethodDelete HTTP method.

func (*RouteBuilder) MethodGet

func (rb *RouteBuilder) MethodGet() *RouteBuilder

MethodGet HTTP method.

func (*RouteBuilder) MethodHead

func (rb *RouteBuilder) MethodHead() *RouteBuilder

MethodHead HTTP method.

func (*RouteBuilder) MethodOptions

func (rb *RouteBuilder) MethodOptions() *RouteBuilder

MethodOptions HTTP method.

func (*RouteBuilder) MethodPatch

func (rb *RouteBuilder) MethodPatch() *RouteBuilder

MethodPatch HTTP method.

func (*RouteBuilder) MethodPost

func (rb *RouteBuilder) MethodPost() *RouteBuilder

MethodPost HTTP method.

func (*RouteBuilder) MethodPut

func (rb *RouteBuilder) MethodPut() *RouteBuilder

MethodPut HTTP method.

func (*RouteBuilder) MethodTrace

func (rb *RouteBuilder) MethodTrace() *RouteBuilder

MethodTrace HTTP method.

func (*RouteBuilder) WithAuth

func (rb *RouteBuilder) WithAuth(auth auth.Authenticator) *RouteBuilder

WithAuth adds authenticator.

func (*RouteBuilder) WithMiddlewares

func (rb *RouteBuilder) WithMiddlewares(mm ...middleware.Func) *RouteBuilder

WithMiddlewares adds middlewares.

func (*RouteBuilder) WithRateLimiting added in v0.51.0

func (rb *RouteBuilder) WithRateLimiting(limit float64, burst int) *RouteBuilder

WithRateLimiting enables route rate limiting.

func (*RouteBuilder) WithRouteCache added in v0.43.0

func (rb *RouteBuilder) WithRouteCache(cache cache.TTLCache, ageBounds httpcache.Age) *RouteBuilder

WithRouteCache adds a cache to the corresponding route.

func (*RouteBuilder) WithTrace

func (rb *RouteBuilder) WithTrace() *RouteBuilder

WithTrace enables route tracing that uses Jaeger/OpenTracing. It requires Jaeger enabled on the Patron service.

type RoutesBuilder deprecated

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

RoutesBuilder creates a list of routes.

Deprecated: Please use the new v2 package. This package is frozen and no new functionality will be added.

func NewRoutesBuilder deprecated

func NewRoutesBuilder() *RoutesBuilder

NewRoutesBuilder constructor.

Deprecated: Please use the new v2 package. This package is frozen and no new functionality will be added.

func (*RoutesBuilder) Append

func (rb *RoutesBuilder) Append(builder *RouteBuilder) *RoutesBuilder

Append a route to the list.

func (*RoutesBuilder) Build

func (rb *RoutesBuilder) Build() ([]Route, error)

Build the routes.

Directories

Path Synopsis
Package auth provides abstractions for concrete implementations.
Package auth provides abstractions for concrete implementations.
apikey
Package apikey is a concrete implementation of the auth abstractions.
Package apikey is a concrete implementation of the auth abstractions.
Package cache provides a cache control and implementation components for http routes.
Package cache provides a cache control and implementation components for http routes.
v2
Package v2 provides a ready to use HTTP component.
Package v2 provides a ready to use HTTP component.
encoding/json
Package json contains helper methods to handler requests and responses more easily.
Package json contains helper methods to handler requests and responses more easily.

Jump to

Keyboard shortcuts

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