Documentation
¶
Overview ¶
Package echo implements a fast and unfancy micro web framework for Go.
Example:
package main import ( "net/http" echo "gopkg.in/labstack/echo.v1" mw "gopkg.in/labstack/echo.v1/middleware" ) func hello(c *echo.Context) error { return c.String(http.StatusOK, "Hello, World!\n") } func main() { e := echo.New() e.Use(mw.Logger()) e.Use(mw.Recover()) e.Get("/", hello) e.Run(":1323") }
Learn more at https://labstack.com/echo
Index ¶
- Constants
- Variables
- type Binder
- type Context
- func (c *Context) Bind(i interface{}) error
- func (c *Context) Echo() *Echo
- func (c *Context) Error(err error)
- func (c *Context) File(path, name string, attachment bool) (err error)
- func (c *Context) Form(name string) string
- func (c *Context) Get(key string) interface{}
- func (c *Context) HTML(code int, html string) (err error)
- func (c *Context) JSON(code int, i interface{}) (err error)
- func (c *Context) JSONBlob(code int, b []byte) (err error)
- func (c *Context) JSONIndent(code int, i interface{}, prefix string, indent string) (err error)
- func (c *Context) JSONP(code int, callback string, i interface{}) (err error)
- func (c *Context) NoContent(code int) error
- func (c *Context) P(i int) (value string)
- func (c *Context) Param(name string) (value string)
- func (c *Context) ParamNames() []string
- func (c *Context) Path() string
- func (c *Context) Query(name string) string
- func (c *Context) Redirect(code int, url string) error
- func (c *Context) Render(code int, name string, data interface{}) (err error)
- func (c *Context) Request() *http.Request
- func (c *Context) Response() *Response
- func (c *Context) Set(key string, val interface{})
- func (c *Context) Socket() *websocket.Conn
- func (c *Context) String(code int, s string) (err error)
- func (c *Context) XML(code int, i interface{}) (err error)
- func (c *Context) XMLIndent(code int, i interface{}, prefix string, indent string) (err error)
- type Echo
- func (e *Echo) Any(path string, h Handler)
- func (e *Echo) AutoIndex(on bool)
- func (e *Echo) Connect(path string, h Handler)
- func (e *Echo) Debug() bool
- func (e *Echo) DefaultHTTPErrorHandler(err error, c *Context)
- func (e *Echo) Delete(path string, h Handler)
- func (e *Echo) Favicon(file string)
- func (e *Echo) Get(path string, h Handler)
- func (e *Echo) Group(prefix string, m ...Middleware) *Group
- func (e *Echo) Head(path string, h Handler)
- func (e *Echo) Hook(h http.HandlerFunc)
- func (e *Echo) Index(file string)
- func (e *Echo) Logger() *log.Logger
- func (e *Echo) Match(methods []string, path string, h Handler)
- func (e *Echo) Options(path string, h Handler)
- func (e *Echo) Patch(path string, h Handler)
- func (e *Echo) Post(path string, h Handler)
- func (e *Echo) Put(path string, h Handler)
- func (e *Echo) Router() *Router
- func (e *Echo) Routes() []Route
- func (e *Echo) Run(addr string)
- func (e *Echo) RunServer(s *http.Server)
- func (e *Echo) RunTLS(addr, certfile, keyfile string)
- func (e *Echo) RunTLSServer(s *http.Server, crtFile, keyFile string)
- func (e *Echo) ServeDir(path, dir string)
- func (e *Echo) ServeFile(path, file string)
- func (e *Echo) ServeHTTP(w http.ResponseWriter, r *http.Request)
- func (e *Echo) Server(addr string) *http.Server
- func (e *Echo) SetBinder(b Binder)
- func (e *Echo) SetDebug(on bool)
- func (e *Echo) SetHTTPErrorHandler(h HTTPErrorHandler)
- func (e *Echo) SetLogLevel(l uint8)
- func (e *Echo) SetLogOutput(w io.Writer)
- func (e *Echo) SetLogPrefix(prefix string)
- func (e *Echo) SetRenderer(r Renderer)
- func (e *Echo) Static(path, dir string)
- func (e *Echo) Trace(path string, h Handler)
- func (e *Echo) URI(h Handler, params ...interface{}) string
- func (e *Echo) URL(h Handler, params ...interface{}) string
- func (e *Echo) Use(m ...Middleware)
- func (e *Echo) WebSocket(path string, h HandlerFunc)
- type Group
- func (g *Group) Any(path string, h Handler)
- func (g *Group) Connect(path string, h Handler)
- func (g *Group) Delete(path string, h Handler)
- func (g *Group) Get(path string, h Handler)
- func (g *Group) Group(prefix string, m ...Middleware) *Group
- func (g *Group) Head(path string, h Handler)
- func (g *Group) Match(methods []string, path string, h Handler)
- func (g *Group) Options(path string, h Handler)
- func (g *Group) Patch(path string, h Handler)
- func (g *Group) Post(path string, h Handler)
- func (g *Group) Put(path string, h Handler)
- func (g *Group) ServeDir(path, root string)
- func (g *Group) ServeFile(path, file string)
- func (g *Group) Static(path, root string)
- func (g *Group) Trace(path string, h Handler)
- func (g *Group) Use(m ...Middleware)
- func (g *Group) WebSocket(path string, h HandlerFunc)
- type HTTPError
- type HTTPErrorHandler
- type Handler
- type HandlerFunc
- type Middleware
- type MiddlewareFunc
- type Renderer
- type Response
- func (r *Response) CloseNotify() <-chan bool
- func (r *Response) Committed() bool
- func (r *Response) Flush()
- func (r *Response) Header() http.Header
- func (r *Response) Hijack() (net.Conn, *bufio.ReadWriter, error)
- func (r *Response) SetWriter(w http.ResponseWriter)
- func (r *Response) Size() int64
- func (r *Response) Status() int
- func (r *Response) Write(b []byte) (n int, err error)
- func (r *Response) WriteHeader(code int)
- func (r *Response) Writer() http.ResponseWriter
- type Route
- type Router
- type Validator
Constants ¶
const ( // CONNECT HTTP method CONNECT = "CONNECT" // DELETE HTTP method DELETE = "DELETE" // GET HTTP method GET = "GET" // HEAD HTTP method HEAD = "HEAD" // OPTIONS HTTP method OPTIONS = "OPTIONS" // PATCH HTTP method PATCH = "PATCH" // POST HTTP method POST = "POST" // PUT HTTP method PUT = "PUT" // TRACE HTTP method TRACE = "TRACE" ApplicationJSON = "application/json" ApplicationJSONCharsetUTF8 = ApplicationJSON + "; " + CharsetUTF8 ApplicationJavaScript = "application/javascript" ApplicationJavaScriptCharsetUTF8 = ApplicationJavaScript + "; " + CharsetUTF8 ApplicationXML = "application/xml" ApplicationXMLCharsetUTF8 = ApplicationXML + "; " + CharsetUTF8 ApplicationForm = "application/x-www-form-urlencoded" ApplicationProtobuf = "application/protobuf" ApplicationMsgpack = "application/msgpack" TextHTML = "text/html" TextHTMLCharsetUTF8 = TextHTML + "; " + CharsetUTF8 TextPlain = "text/plain" TextPlainCharsetUTF8 = TextPlain + "; " + CharsetUTF8 MultipartForm = "multipart/form-data" CharsetUTF8 = "charset=utf-8" AcceptEncoding = "Accept-Encoding" Authorization = "Authorization" ContentDisposition = "Content-Disposition" ContentEncoding = "Content-Encoding" ContentLength = "Content-Length" ContentType = "Content-Type" Location = "Location" Upgrade = "Upgrade" Vary = "Vary" WWWAuthenticate = "WWW-Authenticate" XForwardedFor = "X-Forwarded-For" XRealIP = "X-Real-IP" WebSocket = "websocket" )
Variables ¶
var ( ErrUnsupportedMediaType = NewHTTPError(http.StatusUnsupportedMediaType) ErrRendererNotRegistered = errors.New("renderer not registered") ErrInvalidRedirectCode = errors.New("invalid redirect status code") )
Functions ¶
This section is empty.
Types ¶
type Binder ¶ added in v1.2.0
Binder is the interface that wraps the Bind method.
type Context ¶
Context represents context for the current request. It holds request and response objects, path parameters, data and registered handler.
func NewContext ¶ added in v0.0.13
NewContext creates a Context object.
func (*Context) Bind ¶
Bind binds the request body into specified type `i`. The default binder does it based on Content-Type header.
func (*Context) Echo ¶ added in v1.4.1
Echo returns the `Echo` instance.
func (*Context) Error ¶ added in v0.0.10
Error invokes the registered HTTP error handler. Generally used by middleware.
func (*Context) File ¶ added in v1.2.0
File sends a response with the content of the file. If `attachment` is set to true, the client is prompted to save the file with provided `name`, name can be empty, in that case name of the file is used.
func (*Context) Form ¶ added in v1.1.0
Form returns form parameter by name.
func (*Context) Get ¶
Get retrieves data from the context.
func (*Context) HTML ¶ added in v0.0.5
HTML sends an HTTP response with status code.
func (*Context) JSON ¶
JSON sends a JSON response with status code.
func (*Context) JSONBlob ¶ added in v1.4.1
JSONBlob sends a JSON blob response with status code.
func (*Context) JSONIndent ¶ added in v1.4.1
JSONIndent sends a JSON response with status code, but it applies prefix and indent to format the output.
func (*Context) JSONP ¶ added in v1.2.0
JSONP sends a JSONP response with status code. It uses `callback` to construct the JSONP payload.
func (*Context) NoContent ¶ added in v0.0.10
NoContent sends a response with no body and a status code.
func (*Context) Param ¶
Param returns path parameter by name.
func (*Context) ParamNames ¶ added in v1.4.1
ParamNames returns path parameter names.
func (*Context) Path ¶ added in v1.4.1
Path returns the registered path for the handler.
func (*Context) Query ¶ added in v1.1.0
Query returns query parameter by name.
func (*Context) Redirect ¶
Redirect redirects the request using http.Redirect with status code.
func (*Context) Render ¶ added in v0.0.5
Render renders a template with data and sends a text/html response with status code. Templates can be registered using `Echo.SetRenderer()`.
func (*Context) Set ¶
Set saves data in the context.
func (*Context) Socket ¶ added in v0.0.14
Socket returns *websocket.Conn.
func (*Context) String ¶
String sends a string response with status code.
func (*Context) XML ¶ added in v1.1.0
XML sends an XML response with status code.
type Echo ¶
type Echo struct {
// contains filtered or unexported fields
}
Echo is the top-level framework instance.
func (*Echo) Any ¶ added in v1.2.0
Any adds a route > handler to the router for all HTTP methods.
func (*Echo) AutoIndex ¶ added in v1.4.1
AutoIndex enable/disable automatically creating an index page for the directory.
func (*Echo) Connect ¶
Connect adds a CONNECT route > handler to the router.
func (*Echo) Debug ¶ added in v0.0.13
Debug returns debug mode (enabled or disabled).
func (*Echo) DefaultHTTPErrorHandler ¶ added in v1.0.0
DefaultHTTPErrorHandler invokes the default HTTP error handler.
func (*Echo) Delete ¶
Delete adds a DELETE route > handler to the router.
func (*Echo) Favicon ¶ added in v0.0.13
Favicon serves the default favicon - GET /favicon.ico.
func (*Echo) Get ¶
Get adds a GET route > handler to the router.
func (*Echo) Group ¶ added in v0.0.4
func (e *Echo) Group(prefix string, m ...Middleware) *Group
Group creates a new sub router with prefix. It inherits all properties from the parent. Passing middleware overrides parent middleware.
func (*Echo) Head ¶
Head adds a HEAD route > handler to the router.
func (*Echo) Hook ¶ added in v1.4.1
func (e *Echo) Hook(h http.HandlerFunc)
Hook registers a callback which is invoked from `Echo#ServerHTTP` as the first statement. Hook is useful if you want to modify response/response objects even before it hits the router or any middleware.
func (*Echo) Logger ¶ added in v1.4.1
Logger returns the logger instance.
func (*Echo) Match ¶ added in v1.2.0
Match adds a route > handler to the router for multiple HTTP methods provided.
func (*Echo) Options ¶
Options adds an OPTIONS route > handler to the router.
func (*Echo) Patch ¶
Patch adds a PATCH route > handler to the router.
func (*Echo) Post ¶
Post adds a POST route > handler to the router.
func (*Echo) Put ¶
Put adds a PUT route > handler to the router.
func (*Echo) Routes ¶ added in v1.0.0
Routes returns the registered routes.
func (*Echo) RunServer ¶ added in v0.0.5
RunServer runs a custom server.
func (*Echo) RunTLS ¶ added in v0.0.5
RunTLS runs a server with TLS configuration.
func (*Echo) RunTLSServer ¶ added in v0.0.5
RunTLSServer runs a custom server with TLS configuration.
func (*Echo) ServeDir ¶ added in v1.0.0
ServeDir serves files from a directory.
func (*Echo) ServeHTTP ¶
func (e *Echo) ServeHTTP(w http.ResponseWriter, r *http.Request)
ServeHTTP implements `http.Handler` interface, which serves HTTP requests.
func (*Echo) Server ¶ added in v1.1.0
Server returns the internal *http.Server.
func (*Echo) SetBinder ¶ added in v0.0.14
SetBinder registers a custom binder. It's invoked by Context.Bind().
func (*Echo) SetDebug ¶ added in v0.0.14
SetDebug enable/disable debug mode.
func (*Echo) SetHTTPErrorHandler ¶ added in v0.0.14
func (e *Echo) SetHTTPErrorHandler(h HTTPErrorHandler)
SetHTTPErrorHandler registers a custom Echo.HTTPErrorHandler.
func (*Echo) SetLogLevel ¶ added in v1.4.1
SetLogLevel sets the log level for the logger. Default value is `log.FATAL`.
func (*Echo) SetLogOutput ¶ added in v1.4.1
SetLogOutput sets the output destination for the logger. Default value is `os.Std*`
func (*Echo) SetLogPrefix ¶ added in v1.4.1
SetLogPrefix sets the prefix for the logger. Default value is `echo`.
func (*Echo) SetRenderer ¶ added in v0.0.14
SetRenderer registers an HTML template renderer. It's invoked by Context.Render().
func (*Echo) Static ¶
Static serves static files from a directory. It's an alias for `Echo.ServeDir`
func (*Echo) Trace ¶
Trace adds a TRACE route > handler to the router.
func (*Echo) URI ¶ added in v0.0.11
URI generates a URI from handler.
func (*Echo) URL ¶ added in v0.0.11
URL is an alias for `URI` function.
func (*Echo) WebSocket ¶ added in v0.0.14
func (e *Echo) WebSocket(path string, h HandlerFunc)
WebSocket adds a WebSocket route > handler to the router.
type Group ¶ added in v0.0.16
type Group struct {
// contains filtered or unexported fields
}
Group is a set of subroutes 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 ¶ added in v1.4.1
Any implements the echo.Any interface for subroutes within the Group.
func (*Group) Connect ¶ added in v0.0.16
Connect implements the echo.Connect interface for subroutes within the Group.
func (*Group) Delete ¶ added in v0.0.16
Delete implements the echo.Delete interface for subroutes within the Group.
func (*Group) Get ¶ added in v0.0.16
Get implements the echo.Get interface for subroutes within the Group.
func (*Group) Group ¶ added in v0.0.16
func (g *Group) Group(prefix string, m ...Middleware) *Group
Group implements the echo.Group interface for subroutes within the Group.
func (*Group) Head ¶ added in v0.0.16
Head implements the echo.Head interface for subroutes within the Group.
func (*Group) Match ¶ added in v1.4.1
Match implements the echo.Match interface for subroutes within the Group.
func (*Group) Options ¶ added in v0.0.16
Options implements the echo.Options interface for subroutes within the Group.
func (*Group) Patch ¶ added in v0.0.16
Patch implements the echo.Patch interface for subroutes within the Group.
func (*Group) Post ¶ added in v0.0.16
Post implements the echo.Post interface for subroutes within the Group.
func (*Group) Put ¶ added in v0.0.16
Put implements the echo.Put interface for subroutes within the Group.
func (*Group) ServeDir ¶ added in v1.0.0
ServeDir implements the echo.ServeDir interface for subroutes within the Group.
func (*Group) ServeFile ¶ added in v1.0.0
ServeFile implements the echo.ServeFile interface for subroutes within the Group.
func (*Group) Static ¶ added in v1.0.0
Static implements the echo.Static interface for subroutes within the Group.
func (*Group) Trace ¶ added in v0.0.16
Trace implements the echo.Trace interface for subroutes within the Group.
func (*Group) Use ¶ added in v0.0.16
func (g *Group) Use(m ...Middleware)
Use implements the echo.Use interface for subroutes within the Group.
func (*Group) WebSocket ¶ added in v0.0.16
func (g *Group) WebSocket(path string, h HandlerFunc)
WebSocket implements the echo.WebSocket interface for subroutes within the Group.
type HTTPError ¶ added in v0.0.12
type HTTPError struct {
// contains filtered or unexported fields
}
HTTPError represents an error that occured while handling a request.
func NewHTTPError ¶ added in v0.0.14
NewHTTPError creates a new HTTPError instance.
func (*HTTPError) Error ¶ added in v0.0.12
Error returns message.
type HTTPErrorHandler ¶ added in v0.0.10
HTTPErrorHandler is a centralized HTTP error handler.
type HandlerFunc ¶
HandlerFunc ...
func Use ¶ added in v1.4.1
func Use(handler Handler, middleware ...Middleware) (h HandlerFunc)
Use chains all middleware with handler in the end and returns head of the chain. The head can be used as handler in any route.
type Renderer ¶ added in v0.0.7
Renderer is the interface that wraps the Render method.
type Response ¶ added in v0.0.13
type Response struct {
// contains filtered or unexported fields
}
Response wraps an http.ResponseWriter and implements its interface to be used by an HTTP handler to construct an HTTP response. See http.ResponseWriter(https://golang.org/pkg/net/http/#ResponseWriter)
func NewResponse ¶ added in v0.0.14
func NewResponse(w http.ResponseWriter, e *Echo) *Response
NewResponse creates a new instance of Response.
func (*Response) CloseNotify ¶ added in v0.0.13
CloseNotify implements the http.CloseNotifier interface to allow detecting when the underlying connection has gone away. This mechanism can be used to cancel long operations on the server if the client has disconnected before the response is ready. See http.CloseNotifier(https://golang.org/pkg/net/http/#CloseNotifier)
func (*Response) Committed ¶ added in v1.2.0
Committed asserts whether or not the response has been committed to.
func (*Response) Flush ¶ added in v0.0.13
func (r *Response) Flush()
Flush implements the http.Flusher interface to allow an HTTP handler to flush buffered data to the client. See http.Flusher(https://golang.org/pkg/net/http/#Flusher)
func (*Response) Header ¶ added in v0.0.13
Header returns the header map for the writer that will be sent by WriteHeader. Changing the header after a call to WriteHeader (or Write) has no effect unless the modified headers were declared as trailers by setting the "Trailer" header before the call to WriteHeader (see example) To suppress implicit response headers, set their value to nil. Example [ResponseWriter.Trailers](https://golang.org/pkg/net/http/#example_ResponseWriter_trailers)
func (*Response) Hijack ¶ added in v0.0.13
Hijack implements the http.Hijacker interface to allow an HTTP handler to take over the connection. See http.Hijacker(https://golang.org/pkg/net/http/#Hijacker)
func (*Response) SetWriter ¶ added in v0.0.15
func (r *Response) SetWriter(w http.ResponseWriter)
SetWriter sets the http.ResponseWriter instance for this Response.
func (*Response) Size ¶ added in v0.0.13
Size returns the current size, in bytes, of the response.
func (*Response) Status ¶ added in v0.0.13
Status returns the HTTP status code of the response.
func (*Response) Write ¶ added in v0.0.13
Write wraps and implements the http.Response.Write specification. Additionally, Write will increment the size of the current response. See http.Response.Write(https://golang.org/pkg/net/http/#Response.Write)
func (*Response) WriteHeader ¶ added in v0.0.13
WriteHeader sends an HTTP response header with status code. If WriteHeader is not called explicitly, the first call to Write will trigger an implicit WriteHeader(http.StatusOK). Thus explicit calls to WriteHeader are mainly used to send error codes.
func (*Response) Writer ¶ added in v0.0.13
func (r *Response) Writer() http.ResponseWriter
Writer returns the http.ResponseWriter instance for this Response.
type Route ¶ added in v1.0.0
Route contains a handler and information for matching against requests.
type Router ¶ added in v0.0.16
type Router struct {
// contains filtered or unexported fields
}
Router is the registry of all registered routes for an Echo instance for request matching and handler dispatching.
Router implements the http.Handler specification and can be registered to serve requests.
func (*Router) Add ¶ added in v0.0.16
func (r *Router) Add(method, path string, h HandlerFunc, e *Echo)
Add registers a new route with a matcher for the URL path.
Source Files
¶
- binder.go
- context.go
- echo.go
- group.go
- response.go
- router.go