echo – github.com/labstack/echo Index | Files | Directories

package echo

import "github.com/labstack/echo"

Package echo implements a fast and unfancy HTTP server framework for Go (Golang).

Example:

package main

import (
    "net/http"

    "github.com/labstack/echo"
    "github.com/labstack/echo/engine/standard"
    "github.com/labstack/echo/middleware"
)

// Handler
func hello(c echo.Context) error {
    return c.String(http.StatusOK, "Hello, World!")
}

func main() {
    // Echo instance
    e := echo.New()

    // Middleware
    e.Use(middleware.Logger())
    e.Use(middleware.Recover())

    // Routes
    e.GET("/", hello)

    // Start server
    e.Run(standard.New(":1323"))
}

Learn more at https://echo.labstack.com

Index

Constants

const (
	CONNECT = "CONNECT"
	DELETE  = "DELETE"
	GET     = "GET"
	HEAD    = "HEAD"
	OPTIONS = "OPTIONS"
	PATCH   = "PATCH"
	POST    = "POST"
	PUT     = "PUT"
	TRACE   = "TRACE"
)

HTTP methods

const (
	MIMEApplicationJSON                  = "application/json"
	MIMEApplicationJSONCharsetUTF8       = MIMEApplicationJSON + "; " + charsetUTF8
	MIMEApplicationJavaScript            = "application/javascript"
	MIMEApplicationJavaScriptCharsetUTF8 = MIMEApplicationJavaScript + "; " + charsetUTF8
	MIMEApplicationXML                   = "application/xml"
	MIMEApplicationXMLCharsetUTF8        = MIMEApplicationXML + "; " + charsetUTF8
	MIMEApplicationForm                  = "application/x-www-form-urlencoded"
	MIMEApplicationProtobuf              = "application/protobuf"
	MIMEApplicationMsgpack               = "application/msgpack"
	MIMETextHTML                         = "text/html"
	MIMETextHTMLCharsetUTF8              = MIMETextHTML + "; " + charsetUTF8
	MIMETextPlain                        = "text/plain"
	MIMETextPlainCharsetUTF8             = MIMETextPlain + "; " + charsetUTF8
	MIMEMultipartForm                    = "multipart/form-data"
	MIMEOctetStream                      = "application/octet-stream"
)

MIME types

const (
	HeaderAcceptEncoding                = "Accept-Encoding"
	HeaderAllow                         = "Allow"
	HeaderAuthorization                 = "Authorization"
	HeaderContentDisposition            = "Content-Disposition"
	HeaderContentEncoding               = "Content-Encoding"
	HeaderContentLength                 = "Content-Length"
	HeaderContentType                   = "Content-Type"
	HeaderCookie                        = "Cookie"
	HeaderSetCookie                     = "Set-Cookie"
	HeaderIfModifiedSince               = "If-Modified-Since"
	HeaderLastModified                  = "Last-Modified"
	HeaderLocation                      = "Location"
	HeaderUpgrade                       = "Upgrade"
	HeaderVary                          = "Vary"
	HeaderWWWAuthenticate               = "WWW-Authenticate"
	HeaderXForwardedProto               = "X-Forwarded-Proto"
	HeaderXHTTPMethodOverride           = "X-HTTP-Method-Override"
	HeaderXForwardedFor                 = "X-Forwarded-For"
	HeaderXRealIP                       = "X-Real-IP"
	HeaderServer                        = "Server"
	HeaderOrigin                        = "Origin"
	HeaderAccessControlRequestMethod    = "Access-Control-Request-Method"
	HeaderAccessControlRequestHeaders   = "Access-Control-Request-Headers"
	HeaderAccessControlAllowOrigin      = "Access-Control-Allow-Origin"
	HeaderAccessControlAllowMethods     = "Access-Control-Allow-Methods"
	HeaderAccessControlAllowHeaders     = "Access-Control-Allow-Headers"
	HeaderAccessControlAllowCredentials = "Access-Control-Allow-Credentials"
	HeaderAccessControlExposeHeaders    = "Access-Control-Expose-Headers"
	HeaderAccessControlMaxAge           = "Access-Control-Max-Age"

	// Security
	HeaderStrictTransportSecurity = "Strict-Transport-Security"
	HeaderXContentTypeOptions     = "X-Content-Type-Options"
	HeaderXXSSProtection          = "X-XSS-Protection"
	HeaderXFrameOptions           = "X-Frame-Options"
	HeaderContentSecurityPolicy   = "Content-Security-Policy"
	HeaderXCSRFToken              = "X-CSRF-Token"
)

Headers

Variables

var (
	ErrUnsupportedMediaType        = NewHTTPError(http.StatusUnsupportedMediaType)
	ErrNotFound                    = NewHTTPError(http.StatusNotFound)
	ErrUnauthorized                = NewHTTPError(http.StatusUnauthorized)
	ErrMethodNotAllowed            = NewHTTPError(http.StatusMethodNotAllowed)
	ErrStatusRequestEntityTooLarge = NewHTTPError(http.StatusRequestEntityTooLarge)
	ErrRendererNotRegistered       = errors.New("renderer not registered")
	ErrInvalidRedirectCode         = errors.New("invalid redirect status code")
	ErrCookieNotFound              = errors.New("cookie not found")
)

Errors

Functions

func ContentTypeByExtension

func ContentTypeByExtension(name string) (t string)

ContentTypeByExtension returns the MIME type associated with the file based on its extension. It returns `application/octet-stream` incase MIME type is not found.

Types

type Binder

type Binder interface {
	Bind(interface{}, Context) error
}

Binder is the interface that wraps the Bind method.

type Context

type Context interface {
	// Context returns `net/context.Context`.
	Context() context.Context

	// SetContext sets `net/context.Context`.
	SetContext(context.Context)

	// Deadline returns the time when work done on behalf of this context
	// should be canceled.  Deadline returns ok==false when no deadline is
	// set.  Successive calls to Deadline return the same results.
	Deadline() (deadline time.Time, ok bool)

	// Done returns a channel that's closed when work done on behalf of this
	// context should be canceled.  Done may return nil if this context can
	// never be canceled.  Successive calls to Done return the same value.
	Done() <-chan struct{}

	// Err returns a non-nil error value after Done is closed.  Err returns
	// Canceled if the context was canceled or DeadlineExceeded if the
	// context's deadline passed.  No other values for Err are defined.
	// After Done is closed, successive calls to Err return the same value.
	Err() error

	// Value returns the value associated with this context for key, or nil
	// if no value is associated with key.  Successive calls to Value with
	// the same key returns the same result.
	Value(key interface{}) interface{}

	// Request returns `engine.Request` interface.
	Request() engine.Request

	// Request returns `engine.Response` interface.
	Response() engine.Response

	// Path returns the registered path for the handler.
	Path() string

	// SetPath sets the registered path for the handler.
	SetPath(string)

	// P returns path parameter by index.
	P(int) string

	// Param returns path parameter by name.
	Param(string) string

	// ParamNames returns path parameter names.
	ParamNames() []string

	// SetParamNames sets path parameter names.
	SetParamNames(...string)

	// ParamValues returns path parameter values.
	ParamValues() []string

	// SetParamValues sets path parameter values.
	SetParamValues(...string)

	// QueryParam returns the query param for the provided name. It is an alias
	// for `engine.URL#QueryParam()`.
	QueryParam(string) string

	// QueryParams returns the query parameters as map.
	// It is an alias for `engine.URL#QueryParams()`.
	QueryParams() map[string][]string

	// FormValue returns the form field value for the provided name. It is an
	// alias for `engine.Request#FormValue()`.
	FormValue(string) string

	// FormParams returns the form parameters as map.
	// It is an alias for `engine.Request#FormParams()`.
	FormParams() map[string][]string

	// FormFile returns the multipart form file for the provided name. It is an
	// alias for `engine.Request#FormFile()`.
	FormFile(string) (*multipart.FileHeader, error)

	// MultipartForm returns the multipart form.
	// It is an alias for `engine.Request#MultipartForm()`.
	MultipartForm() (*multipart.Form, error)

	// Cookie returns the named cookie provided in the request.
	// It is an alias for `engine.Request#Cookie()`.
	Cookie(string) (engine.Cookie, error)

	// SetCookie adds a `Set-Cookie` header in HTTP response.
	// It is an alias for `engine.Response#SetCookie()`.
	SetCookie(engine.Cookie)

	// Cookies returns the HTTP cookies sent with the request.
	// It is an alias for `engine.Request#Cookies()`.
	Cookies() []engine.Cookie

	// Get retrieves data from the context.
	Get(string) interface{}

	// Set saves data in the context.
	Set(string, interface{})

	// Bind binds the request body into provided type `i`. The default binder
	// does it based on Content-Type header.
	Bind(interface{}) error

	// Render renders a template with data and sends a text/html response with status
	// code. Templates can be registered using `Echo.SetRenderer()`.
	Render(int, string, interface{}) error

	// HTML sends an HTTP response with status code.
	HTML(int, string) error

	// String sends a string response with status code.
	String(int, string) error

	// JSON sends a JSON response with status code.
	JSON(int, interface{}) error

	// JSONBlob sends a JSON blob response with status code.
	JSONBlob(int, []byte) error

	// JSONP sends a JSONP response with status code. It uses `callback` to construct
	// the JSONP payload.
	JSONP(int, string, interface{}) error

	// XML sends an XML response with status code.
	XML(int, interface{}) error

	// XMLBlob sends a XML blob response with status code.
	XMLBlob(int, []byte) error

	// File sends a response with the content of the file.
	File(string) error

	// Attachment sends a response from `io.ReaderSeeker` as attachment, prompting
	// client to save the file.
	Attachment(io.ReadSeeker, string) error

	// NoContent sends a response with no body and a status code.
	NoContent(int) error

	// Redirect redirects the request with status code.
	Redirect(int, string) error

	// Error invokes the registered HTTP error handler. Generally used by middleware.
	Error(err error)

	// Handler returns the matched handler by router.
	Handler() HandlerFunc

	// SetHandler sets the matched handler by router.
	SetHandler(HandlerFunc)

	// Logger returns the `Logger` instance.
	Logger() log.Logger

	// Echo returns the `Echo` instance.
	Echo() *Echo

	// ServeContent sends static content from `io.Reader` and handles caching
	// via `If-Modified-Since` request header. It automatically sets `Content-Type`
	// and `Last-Modified` response headers.
	ServeContent(io.ReadSeeker, string, time.Time) error

	// Reset resets the context after request completes. It must be called along
	// with `Echo#AcquireContext()` and `Echo#ReleaseContext()`.
	// See `Echo#ServeHTTP()`
	Reset(engine.Request, engine.Response)
}

Context represents the context of the current HTTP request. It holds request and response objects, path, path parameters, data and registered handler.

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

Cookie defines the HTTP cookie.

func (*Cookie) Domain

func (c *Cookie) Domain() string

Domain returns the cookie domain.

func (*Cookie) Expires

func (c *Cookie) Expires() time.Time

Expires returns the cookie expiry time.

func (*Cookie) HTTPOnly

func (c *Cookie) HTTPOnly() bool

HTTPOnly indicates if cookie is HTTPOnly.

func (*Cookie) Name

func (c *Cookie) Name() string

Name returns the cookie name.

func (*Cookie) Path

func (c *Cookie) Path() string

Path returns the cookie path.

func (*Cookie) Secure

func (c *Cookie) Secure() bool

Secure indicates if cookie is Secure.

func (*Cookie) SetDomain

func (c *Cookie) SetDomain(domain string)

SetDomain sets the cookie domain.

func (*Cookie) SetExpires

func (c *Cookie) SetExpires(expires time.Time)

SetExpires sets the cookie expiry time.

func (*Cookie) SetHTTPOnly

func (c *Cookie) SetHTTPOnly(httpOnly bool)

SetHTTPOnly sets the cookie as HTTPOnly.

func (*Cookie) SetName

func (c *Cookie) SetName(name string)

SetName sets cookie name.

func (*Cookie) SetPath

func (c *Cookie) SetPath(path string)

SetPath sets the cookie path.

func (*Cookie) SetSecure

func (c *Cookie) SetSecure(secure bool)

SetSecure sets the cookie as Secure.

func (*Cookie) SetValue

func (c *Cookie) SetValue(value string)

SetValue sets the cookie value.

func (*Cookie) Value

func (c *Cookie) Value() string

Value returns the cookie value.

type Echo

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

Echo is the top-level framework instance.

func New

func New() (e *Echo)

New creates an instance of Echo.

func (*Echo) AcquireContext

func (e *Echo) AcquireContext() Context

AcquireContext returns an empty `Context` instance from the pool. You must be return the context by calling `ReleaseContext()`.

func (*Echo) Any

func (e *Echo) Any(path string, handler HandlerFunc, middleware ...MiddlewareFunc)

Any registers a new route for all HTTP methods and path with matching handler in the router with optional route-level middleware.

func (*Echo) Binder

func (e *Echo) Binder() Binder

Binder returns the binder instance.

func (*Echo) CONNECT

func (e *Echo) CONNECT(path string, h HandlerFunc, m ...MiddlewareFunc)

CONNECT registers a new CONNECT route for a path with matching handler in the router with optional route-level middleware.

func (*Echo) Connect

func (e *Echo) Connect(path string, h HandlerFunc, m ...MiddlewareFunc)

Connect is deprecated, use `CONNECT()` instead.

func (*Echo) DELETE

func (e *Echo) DELETE(path string, h HandlerFunc, m ...MiddlewareFunc)

DELETE registers a new DELETE route for a path with matching handler in the router with optional route-level middleware.

func (*Echo) Debug

func (e *Echo) Debug() bool

Debug returns debug mode (enabled or disabled).

func (*Echo) DefaultHTTPErrorHandler

func (e *Echo) DefaultHTTPErrorHandler(err error, c Context)

DefaultHTTPErrorHandler invokes the default HTTP error handler.

func (*Echo) Delete

func (e *Echo) Delete(path string, h HandlerFunc, m ...MiddlewareFunc)

Delete is deprecated, use `DELETE()` instead.

func (*Echo) File

func (e *Echo) File(path, file string)

File registers a new route with path to serve a static file.

func (*Echo) GET

func (e *Echo) GET(path string, h HandlerFunc, m ...MiddlewareFunc)

GET registers a new GET route for a path with matching handler in the router with optional route-level middleware.

func (*Echo) Get

func (e *Echo) Get(path string, h HandlerFunc, m ...MiddlewareFunc)

Get is deprecated, use `GET()` instead.

func (*Echo) Group

func (e *Echo) Group(prefix string, m ...MiddlewareFunc) (g *Group)

Group creates a new router group with prefix and optional group-level middleware.

func (*Echo) HEAD

func (e *Echo) HEAD(path string, h HandlerFunc, m ...MiddlewareFunc)

HEAD registers a new HEAD route for a path with matching handler in the router with optional route-level middleware.

func (*Echo) Head

func (e *Echo) Head(path string, h HandlerFunc, m ...MiddlewareFunc)

Head is deprecated, use `HEAD()` instead.

func (*Echo) Logger

func (e *Echo) Logger() log.Logger

Logger returns the logger instance.

func (*Echo) Match

func (e *Echo) Match(methods []string, path string, handler HandlerFunc, middleware ...MiddlewareFunc)

Match registers a new route for multiple HTTP methods and path with matching handler in the router with optional route-level middleware.

func (*Echo) NewContext

func (e *Echo) NewContext(req engine.Request, res engine.Response) Context

NewContext returns a Context instance.

func (*Echo) OPTIONS

func (e *Echo) OPTIONS(path string, h HandlerFunc, m ...MiddlewareFunc)

OPTIONS registers a new OPTIONS route for a path with matching handler in the router with optional route-level middleware.

func (*Echo) Options

func (e *Echo) Options(path string, h HandlerFunc, m ...MiddlewareFunc)

Options is deprecated, use `OPTIONS()` instead.

func (*Echo) PATCH

func (e *Echo) PATCH(path string, h HandlerFunc, m ...MiddlewareFunc)

PATCH registers a new PATCH route for a path with matching handler in the router with optional route-level middleware.

func (*Echo) POST

func (e *Echo) POST(path string, h HandlerFunc, m ...MiddlewareFunc)

POST registers a new POST route for a path with matching handler in the router with optional route-level middleware.

func (*Echo) PUT

func (e *Echo) PUT(path string, h HandlerFunc, m ...MiddlewareFunc)

PUT registers a new PUT route for a path with matching handler in the router with optional route-level middleware.

func (*Echo) Patch

func (e *Echo) Patch(path string, h HandlerFunc, m ...MiddlewareFunc)

Patch is deprecated, use `PATCH()` instead.

func (*Echo) Post

func (e *Echo) Post(path string, h HandlerFunc, m ...MiddlewareFunc)

Post is deprecated, use `POST()` instead.

func (*Echo) Pre

func (e *Echo) Pre(middleware ...MiddlewareFunc)

Pre adds middleware to the chain which is run before router.

func (*Echo) Put

func (e *Echo) Put(path string, h HandlerFunc, m ...MiddlewareFunc)

Put is deprecated, use `PUT()` instead.

func (*Echo) ReleaseContext

func (e *Echo) ReleaseContext(c Context)

ReleaseContext returns the `Context` instance back to the pool. You must call it after `AcquireContext()`.

func (*Echo) Router

func (e *Echo) Router() *Router

Router returns router.

func (*Echo) Routes

func (e *Echo) Routes() []Route

Routes returns the registered routes.

func (*Echo) Run

func (e *Echo) Run(s engine.Server)

Run starts the HTTP server.

func (*Echo) ServeHTTP

func (e *Echo) ServeHTTP(req engine.Request, res engine.Response)

func (*Echo) SetBinder

func (e *Echo) SetBinder(b Binder)

SetBinder registers a custom binder. It's invoked by `Context#Bind()`.

func (*Echo) SetDebug

func (e *Echo) SetDebug(on bool)

SetDebug enable/disable debug mode.

func (*Echo) SetHTTPErrorHandler

func (e *Echo) SetHTTPErrorHandler(h HTTPErrorHandler)

SetHTTPErrorHandler registers a custom Echo.HTTPErrorHandler.

func (*Echo) SetLogLevel

func (e *Echo) SetLogLevel(l glog.Lvl)

SetLogLevel sets the log level for the logger. Default value ERROR.

func (*Echo) SetLogOutput

func (e *Echo) SetLogOutput(w io.Writer)

SetLogOutput sets the output destination for the logger. Default value is `os.Std*`

func (*Echo) SetLogger

func (e *Echo) SetLogger(l log.Logger)

SetLogger defines a custom logger.

func (*Echo) SetRenderer

func (e *Echo) SetRenderer(r Renderer)

SetRenderer registers an HTML template renderer. It's invoked by `Context#Render()`.

func (*Echo) Static

func (e *Echo) Static(prefix, root string)

Static registers a new route with path prefix to serve static files from the provided root directory.

func (*Echo) TRACE

func (e *Echo) TRACE(path string, h HandlerFunc, m ...MiddlewareFunc)

TRACE registers a new TRACE route for a path with matching handler in the router with optional route-level middleware.

func (*Echo) Trace

func (e *Echo) Trace(path string, h HandlerFunc, m ...MiddlewareFunc)

Trace is deprecated, use `TRACE()` instead.

func (*Echo) URI

func (e *Echo) URI(handler HandlerFunc, params ...interface{}) string

URI generates a URI from handler.

func (*Echo) URL

func (e *Echo) URL(h HandlerFunc, params ...interface{}) string

URL is an alias for `URI` function.

func (*Echo) Use

func (e *Echo) Use(middleware ...MiddlewareFunc)

Use adds middleware to the chain which is run after router.

type Group

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

Group is a set of sub-routes for a specified route. It can be used for inner routes that share a common middlware or functionality that should be separate from the parent echo instance while still inheriting from it.

func (*Group) Any

func (g *Group) Any(path string, handler HandlerFunc, middleware ...MiddlewareFunc)

Any implements `Echo#Any()` for sub-routes within the Group.

func (*Group) CONNECT

func (g *Group) CONNECT(path string, h HandlerFunc, m ...MiddlewareFunc)

CONNECT implements `Echo#CONNECT()` for sub-routes within the Group.

func (*Group) Connect

func (g *Group) Connect(path string, h HandlerFunc, m ...MiddlewareFunc)

Connect is deprecated, use `CONNECT()` instead.

func (*Group) DELETE

func (g *Group) DELETE(path string, h HandlerFunc, m ...MiddlewareFunc)

DELETE implements `Echo#DELETE()` for sub-routes within the Group.

func (*Group) Delete

func (g *Group) Delete(path string, h HandlerFunc, m ...MiddlewareFunc)

Delete is deprecated, use `DELETE()` instead.

func (*Group) File

func (g *Group) File(path, file string)

File implements `Echo#File()` for sub-routes within the Group.

func (*Group) GET

func (g *Group) GET(path string, h HandlerFunc, m ...MiddlewareFunc)

GET implements `Echo#GET()` for sub-routes within the Group.

func (*Group) Get

func (g *Group) Get(path string, h HandlerFunc, m ...MiddlewareFunc)

Get is deprecated, use `GET()` instead.

func (*Group) Group

func (g *Group) Group(prefix string, middleware ...MiddlewareFunc) *Group

Group creates a new sub-group with prefix and optional sub-group-level middleware.

func (*Group) HEAD

func (g *Group) HEAD(path string, h HandlerFunc, m ...MiddlewareFunc)

HEAD implements `Echo#HEAD()` for sub-routes within the Group.

func (*Group) Head

func (g *Group) Head(path string, h HandlerFunc, m ...MiddlewareFunc)

Head is deprecated, use `HEAD()` instead.

func (*Group) Match

func (g *Group) Match(methods []string, path string, handler HandlerFunc, middleware ...MiddlewareFunc)

Match implements `Echo#Match()` for sub-routes within the Group.

func (*Group) OPTIONS

func (g *Group) OPTIONS(path string, h HandlerFunc, m ...MiddlewareFunc)

OPTIONS implements `Echo#OPTIONS()` for sub-routes within the Group.

func (*Group) Options

func (g *Group) Options(path string, h HandlerFunc, m ...MiddlewareFunc)

Options is deprecated, use `OPTIONS()` instead.

func (*Group) PATCH

func (g *Group) PATCH(path string, h HandlerFunc, m ...MiddlewareFunc)

PATCH implements `Echo#PATCH()` for sub-routes within the Group.

func (*Group) POST

func (g *Group) POST(path string, h HandlerFunc, m ...MiddlewareFunc)

POST implements `Echo#POST()` for sub-routes within the Group.

func (*Group) PUT

func (g *Group) PUT(path string, h HandlerFunc, m ...MiddlewareFunc)

PUT implements `Echo#PUT()` for sub-routes within the Group.

func (*Group) Patch

func (g *Group) Patch(path string, h HandlerFunc, m ...MiddlewareFunc)

Patch is deprecated, use `PATCH()` instead.

func (*Group) Post

func (g *Group) Post(path string, h HandlerFunc, m ...MiddlewareFunc)

Post is deprecated, use `POST()` instead.

func (*Group) Put

func (g *Group) Put(path string, h HandlerFunc, m ...MiddlewareFunc)

Put is deprecated, use `PUT()` instead.

func (*Group) Static

func (g *Group) Static(prefix, root string)

Static implements `Echo#Static()` for sub-routes within the Group.

func (*Group) TRACE

func (g *Group) TRACE(path string, h HandlerFunc, m ...MiddlewareFunc)

TRACE implements `Echo#TRACE()` for sub-routes within the Group.

func (*Group) Trace

func (g *Group) Trace(path string, h HandlerFunc, m ...MiddlewareFunc)

Trace is deprecated, use `TRACE()` instead.

func (*Group) Use

func (g *Group) Use(m ...MiddlewareFunc)

Use implements `Echo#Use()` for sub-routes within the Group.

type HTTPError

type HTTPError struct {
	Code    int
	Message string
}

HTTPError represents an error that occurred while handling a request.

func NewHTTPError

func NewHTTPError(code int, msg ...string) *HTTPError

NewHTTPError creates a new HTTPError instance.

func (*HTTPError) Error

func (e *HTTPError) Error() string

Error makes it compatible with `error` interface.

type HTTPErrorHandler

type HTTPErrorHandler func(error, Context)

HTTPErrorHandler is a centralized HTTP error handler.

type HandlerFunc

type HandlerFunc func(Context) error

HandlerFunc defines a function to server HTTP requests.

type MiddlewareFunc

type MiddlewareFunc func(HandlerFunc) HandlerFunc

MiddlewareFunc defines a function to process middleware.

func WrapMiddleware

func WrapMiddleware(h HandlerFunc) MiddlewareFunc

WrapMiddleware wrap `echo.HandlerFunc` into `echo.MiddlewareFunc`.

type Renderer

type Renderer interface {
	Render(io.Writer, string, interface{}, Context) error
}

Renderer is the interface that wraps the Render function.

type Route

type Route struct {
	Method  string
	Path    string
	Handler string
}

Route contains a handler and information for matching against requests.

type Router

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

Router is the registry of all registered routes for an `Echo` instance for request matching and URL path parameter parsing.

func NewRouter

func NewRouter(e *Echo) *Router

NewRouter returns a new Router instance.

func (*Router) Add

func (r *Router) Add(method, path string, h HandlerFunc, e *Echo)

Add registers a new route for method and path with matching handler.

func (*Router) Find

func (r *Router) Find(method, path string, context Context)

Find lookup a handler registed for method and path. It also parses URL for path parameters and load them into context.

For performance:

- Get context from `Echo#AcquireContext()` - Reset it `Context#Reset()` - Return it `Echo#ReleaseContext()`.

type Validator

type Validator interface {
	Validate() error
}

Validator is the interface that wraps the Validate function.

Source Files

binder.go context.go cookie.go echo.go group.go router.go

Directories

PathSynopsis
engine
engine/fasthttp
engine/standard
engine/test
log
middleware
test
Version
v2.0.2+incompatible
Published
Jun 16, 2016
Platform
windows/amd64
Imports
22 packages
Last checked
1 week ago

Tools for package owners.