rhttp

package
v0.0.1 Latest Latest
Warning

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

Go to latest
Published: Oct 24, 2019 License: Apache-2.0 Imports: 17 Imported by: 3

Documentation

Index

Constants

This section is empty.

Variables

View Source
var NewMiddlewares = map[string]NewMiddleware{}

NewMiddlewares contains all the registered new middleware functions.

View Source
var Services = map[string]NewService{}

Services is a map of service name and its new function.

Functions

func GetHTTPClient

func GetHTTPClient(ctx context.Context) *http.Client

GetHTTPClient returns an http client with open census tracing support. TODO(labkode): harden it. https://medium.com/@nate510/don-t-use-go-s-default-http-client-4804cb19f779

func NewRequest

func NewRequest(ctx context.Context, method, url string, body io.Reader) (*http.Request, error)

NewRequest creates an HTTP request that sets the token if it is passed in ctx.

func Register

func Register(name string, newFunc NewService)

Register registers a new HTTP services with name and new function.

func RegisterMiddleware

func RegisterMiddleware(name string, n NewMiddleware)

RegisterMiddleware registers a new HTTP middleware and its new function.

func ShiftPath

func ShiftPath(p string) (head, tail string)

ShiftPath splits off the first component of p, which will be cleaned of relative components before processing. head will never contain a slash and tail will always be a rooted path without trailing slash. see https://blog.merovius.de/2017/06/18/how-not-to-use-an-http-router.html and https://gist.github.com/weatherglass/62bd8a704d4dfdc608fe5c5cb5a6980c#gistcomment-2161690 for the zero alloc code below

Types

type Middleware

type Middleware func(h http.Handler) http.Handler

Middleware is a middleware http handler.

type NewMiddleware

type NewMiddleware func(conf map[string]interface{}) (Middleware, int, error)

NewMiddleware is the function that HTTP middlewares need to register at init time.

type NewService

type NewService func(conf map[string]interface{}) (Service, error)

NewService is the function that HTTP services need to register at init time.

type Server

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

Server contains the server info.

func New

func New(m interface{}, l zerolog.Logger) (*Server, error)

New returns a new server

func (*Server) Address

func (s *Server) Address() string

Address returns the network address.

func (*Server) GracefulStop

func (s *Server) GracefulStop() error

GracefulStop gracefully stops the server.

func (*Server) Network

func (s *Server) Network() string

Network return the network type.

func (*Server) Start

func (s *Server) Start(ln net.Listener) error

Start starts the server

func (*Server) Stop

func (s *Server) Stop() error

Stop stops the server.

type Service

type Service interface {
	Handler() http.Handler
	Prefix() string
	Close() error
}

Service represents a HTTP service.

Jump to

Keyboard shortcuts

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