router

package
v0.0.0-...-5abe684 Latest Latest
Warning

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

Go to latest
Published: Mar 3, 2021 License: MIT Imports: 5 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type ContextProvider

type ContextProvider func(r *http.Request, f func(context.Context))

ContextProvider is a function to create Context for each request

type Handler

type Handler func(ctx context.Context, args HandlerArgs)

Handler is a implementation of a endpoint

type HandlerArgs

type HandlerArgs struct {
	W  ResponseWriter
	R  Request
	PS httprouter.Params
}

HandlerArgs holds arguments of handler invoke

type Middleware

type Middleware func(ctx context.Context, args MiddlewareArgs, next func(context.Context, MiddlewareArgs))

Middleware is a filter that request passes

func WrapMiddleware

func WrapMiddleware(m func(http.Handler) http.Handler) Middleware

WrapMiddleware wraps standard net/http middleware as Middleware

type MiddlewareArgs

type MiddlewareArgs struct {
	HandlerArgs
}

MiddlewareArgs holds arguments of middleware invoke

type MiddlewareFunc

type MiddlewareFunc func(method string, path string) Middleware

MiddlewareFunc is a function to dynamically create Middleware

func AsMiddlewareFunc

func AsMiddlewareFunc(m Middleware) MiddlewareFunc

AsMiddlewareFunc wraps Middleware as MiddlewareFunc

type Request

type Request struct {
	*http.Request
}

Request wraps http.Request

func (Request) GetQueryParam

func (req Request) GetQueryParam(name string) string

GetQueryParam returns URL query parameter or ""

func (Request) GetQueryParamOrDefault

func (req Request) GetQueryParamOrDefault(name string, defaultValue string) string

GetQueryParamOrDefault returns URL query parameter or ""

func (Request) ReadBody

func (req Request) ReadBody() ([]byte, error)

ReadBody read request body

type ResponseWriter

type ResponseWriter interface {
	Header() http.Header
	Write([]byte) (int, error)
	WriteHeader(statusCode int)

	Written() ResponseWritten
}

ResponseWriter extends net/http ResponseWriter

func NewResponseWriter

func NewResponseWriter(w http.ResponseWriter) ResponseWriter

NewResponseWriter wraps writer

type ResponseWritten

type ResponseWritten struct {
	StatusCode int
	BodyBytes  int
}

ResponseWritten is summary of written data

type Router

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

Router represents tree of endpoints

func NewRouter

func NewRouter(cp ContextProvider, r *httprouter.Router, pathPrefix string, middlewareFuncs ...MiddlewareFunc) *Router

NewRouter creates new router (root node of router tree)

func (*Router) DELETE

func (rt *Router) DELETE(pathPrefix string, h Handler)

DELETE endpoint registration

func (*Router) GET

func (rt *Router) GET(pathPrefix string, h Handler)

GET endpoint registration

func (*Router) NewGroup

func (rt *Router) NewGroup(pathPrefix string, middlewareFuncs ...MiddlewareFunc) *Router

NewGroup creates new child node of the router tree

func (*Router) POST

func (rt *Router) POST(pathPrefix string, h Handler)

POST endpoint registration

func (*Router) PUT

func (rt *Router) PUT(pathPrefix string, h Handler)

PUT endpoint registration

Jump to

Keyboard shortcuts

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