web

package
v0.0.0-...-5646104 Latest Latest
Warning

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

Go to latest
Published: May 21, 2020 License: MIT Imports: 10 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	HeaderContentJson      = map[string]string{"Content-Type": "application/json"}
	HeaderContentPlainText = map[string]string{"Content-Type": "text/plain"}
)

Functions

func HealthHandler

func HealthHandler(w http.ResponseWriter, r *http.Request)

Types

type ChiRouter

type ChiRouter struct {
	*chi.Mux
}

func NewRouter

func NewRouter(r *chi.Mux) *ChiRouter

func (*ChiRouter) Mount

func (mx *ChiRouter) Mount(method, pattern string, handler HandlerFunc)

func (*ChiRouter) Route

func (mx *ChiRouter) Route(pattern string, fn func(r Router)) Router

func (*ChiRouter) Use

func (mx *ChiRouter) Use(middlewares ...func(http.Handler) http.Handler)

type HandlerFunc

type HandlerFunc func(*WebRequest) *WebResponse

type IMarshaler

type IMarshaler interface {
	Marshal() ([]byte, error)
}

type IWebConfig

type IWebConfig interface {
	Addr() string
}

type Router

type Router interface {
	Use(middlewares ...func(http.Handler) http.Handler)
	Route(pattern string, fn func(r Router)) Router
	Mount(method, pattern string, handler HandlerFunc)
}

type Web

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

func NewWeb

func NewWeb(httpConf *WebConfig, mux http.Handler) (*Web, error)

func (*Web) Close

func (a *Web) Close() error

func (*Web) ListenAndServer

func (a *Web) ListenAndServer() error

func (*Web) NewRouter

func (a *Web) NewRouter() chi.Router

func (*Web) Shutdown

func (a *Web) Shutdown(ctx context.Context) error

type WebConfig

type WebConfig struct {
	Host         string        `json:"host,omitempty" env:"HTTP_HOST" envDefault:"0.0.0.0"`
	Port         int           `json:"port,omitempty" env:"HTTP_PORT" envDefault:"49876"`
	ReadTimeout  time.Duration `json:"read_timeout,omitempty" env:"HTTP_READ_TIMEOUT" envDefault:"60s"`
	WriteTimeout time.Duration `json:"write_timeout,omitempty" env:"HTTP_WRITE_TIMEOUT" envDefault:"60s"`
}

func NewWebConfigFromEnv

func NewWebConfigFromEnv() (*WebConfig, error)

func (*WebConfig) Addr

func (h *WebConfig) Addr() string

func (*WebConfig) Import

func (h *WebConfig) Import() error

type WebHeaders

type WebHeaders map[string]string

type WebRequest

type WebRequest struct {
	*http.Request
}

func NewWebRequest

func NewWebRequest(request *http.Request) *WebRequest

func (*WebRequest) DecodeBody

func (r *WebRequest) DecodeBody(v interface{}) error

func (*WebRequest) HeaderValue

func (r *WebRequest) HeaderValue(k string) string

func (*WebRequest) URLParamValue

func (r *WebRequest) URLParamValue(k string) string

type WebResponse

type WebResponse struct {
	Status  int
	Headers WebHeaders
	Body    []byte
}

func NewWebResponse

func NewWebResponse(status int, headers WebHeaders, body []byte) *WebResponse

func (*WebResponse) WriteStruct

func (wb *WebResponse) WriteStruct(status int, headers WebHeaders, m IMarshaler) error

Jump to

Keyboard shortcuts

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