http

package
v0.15.0 Latest Latest
Warning

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

Go to latest
Published: Apr 25, 2022 License: Apache-2.0 Imports: 17 Imported by: 3

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Metrics added in v0.11.0

func Metrics(next http.Handler) http.Handler

Metrics is middleware which provides tracking of key metrics for incoming HTTP requests.

func Response added in v0.12.0

func Response(ctx context.Context, w http.ResponseWriter, err error)

Response writes an http error responses to the http.ResponseWriter.

Types

type ResponseError added in v0.12.0

type ResponseError struct {
	// Status is the http status code applicable to this problem.
	Status int `json:"status,omitempty"`
	// Detail is a human-readable explanation specific to this occurrence of
	// the problem.
	Detail string `json:"detail,omitempty"`
}

ResponseError provides additional information about problems encounted while performing an operation. See: https://jsonapi.org/format/#error-objects

func (ResponseError) Error added in v0.12.0

func (e ResponseError) Error() string

Error translates the error to a string.

type Server

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

Server represents an HTTP server.

func NewServer added in v0.9.0

func NewServer(opts ...ServerOption) *Server

NewServer creates an HTTP server with and has not started to accept requests yet.

func (*Server) Register added in v0.9.0

func (s *Server) Register(services ...Service)

Register associates the given services with the router.

func (*Server) Serve

func (s *Server) Serve() error

Serve accepts incoming connections, creating a new service goroutine for each. The service goroutine reads requests and then call the handler to reply to them.

func (*Server) Shutdown added in v0.9.0

func (s *Server) Shutdown()

Shutdown stops the http server gracefully without interrupting any active connections.

type ServerOption added in v0.9.0

type ServerOption interface {
	// contains filtered or unexported methods
}

ServerOption provides options for configuring the creation of a http server.

func WithMiddleware added in v0.9.0

func WithMiddleware(mw ...mux.MiddlewareFunc) ServerOption

WithMetricsMiddleware provide middleware service to be added to the server.

func WithServerAddr added in v0.9.0

func WithServerAddr(addr string) ServerOption

WithServerAddr will configure the server with the listen address.

func WithServerLogger added in v0.9.0

func WithServerLogger(logger log.Logger) ServerOption

WithServerLogger provides a logger to the server.

func WithServerShutdownTimeout added in v0.9.0

func WithServerShutdownTimeout(timeout time.Duration) ServerOption

WithServerShutdownTimeout sets the timout for shutting down the server.

func WithServerTLS added in v0.9.0

func WithServerTLS(cfg *tls.Config) ServerOption

WithServerTLS will configure the server to require TLS.

type Service added in v0.9.0

type Service interface {
	// Register will register this service with the given router.
	Register(router *mux.Router)

	// Name provides the name of the service.
	Name() string

	// Shutdown allows the service to stop any long running background processes it
	// may have.
	Shutdown()
}

Service defines the methods required by the Server to register with the service with the router.

Jump to

Keyboard shortcuts

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