mirror of
https://github.com/labstack/echo.git
synced 2025-12-07 23:12:43 +02:00
@@ -90,15 +90,9 @@ func main() {
|
|||||||
// Echo instance
|
// Echo instance
|
||||||
e := echo.New()
|
e := echo.New()
|
||||||
|
|
||||||
//------------
|
|
||||||
// Middleware
|
// Middleware
|
||||||
//------------
|
|
||||||
|
|
||||||
// Recover
|
|
||||||
e.Use(mw.Recover())
|
|
||||||
|
|
||||||
// Logger
|
|
||||||
e.Use(mw.Logger())
|
e.Use(mw.Logger())
|
||||||
|
e.Use(mw.Recover())
|
||||||
|
|
||||||
// Routes
|
// Routes
|
||||||
e.Get("/", hello)
|
e.Get("/", hello)
|
||||||
|
|||||||
29
echo.go
29
echo.go
@@ -22,6 +22,7 @@ type (
|
|||||||
prefix string
|
prefix string
|
||||||
middleware []MiddlewareFunc
|
middleware []MiddlewareFunc
|
||||||
maxParam byte
|
maxParam byte
|
||||||
|
notFoundHandler HandlerFunc
|
||||||
httpErrorHandler HTTPErrorHandler
|
httpErrorHandler HTTPErrorHandler
|
||||||
binder BindFunc
|
binder BindFunc
|
||||||
renderer Renderer
|
renderer Renderer
|
||||||
@@ -134,13 +135,16 @@ func New() (e *Echo) {
|
|||||||
//----------
|
//----------
|
||||||
|
|
||||||
e.MaxParam(5)
|
e.MaxParam(5)
|
||||||
|
e.notFoundHandler = func(c *Context) *HTTPError {
|
||||||
|
return &HTTPError{Code: http.StatusNotFound}
|
||||||
|
}
|
||||||
e.HTTPErrorHandler(func(he *HTTPError, c *Context) {
|
e.HTTPErrorHandler(func(he *HTTPError, c *Context) {
|
||||||
if he.Code == 0 {
|
if he.Code == 0 {
|
||||||
he.Code = http.StatusInternalServerError
|
he.Code = http.StatusInternalServerError
|
||||||
}
|
}
|
||||||
if he.Message == "" {
|
if he.Message == "" {
|
||||||
he.Message = http.StatusText(he.Code)
|
he.Message = http.StatusText(he.Code)
|
||||||
if e.debug {
|
if e.debug && he.Error != nil {
|
||||||
he.Message = he.Error.Error()
|
he.Message = he.Error.Error()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -321,18 +325,19 @@ func (e *Echo) ServeHTTP(w http.ResponseWriter, r *http.Request) {
|
|||||||
}
|
}
|
||||||
c.reset(w, r, e)
|
c.reset(w, r, e)
|
||||||
if h == nil {
|
if h == nil {
|
||||||
c.Error(&HTTPError{Code: http.StatusNotFound})
|
h = e.notFoundHandler
|
||||||
} else {
|
|
||||||
// Chain middleware with handler in the end
|
|
||||||
for i := len(e.middleware) - 1; i >= 0; i-- {
|
|
||||||
h = e.middleware[i](h)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Execute chain
|
|
||||||
if he := h(c); he != nil {
|
|
||||||
e.httpErrorHandler(he, c)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Chain middleware with handler in the end
|
||||||
|
for i := len(e.middleware) - 1; i >= 0; i-- {
|
||||||
|
h = e.middleware[i](h)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Execute chain
|
||||||
|
if he := h(c); he != nil {
|
||||||
|
e.httpErrorHandler(he, c)
|
||||||
|
}
|
||||||
|
|
||||||
e.pool.Put(c)
|
e.pool.Put(c)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -61,8 +61,8 @@ func main() {
|
|||||||
e := echo.New()
|
e := echo.New()
|
||||||
|
|
||||||
// Middleware
|
// Middleware
|
||||||
e.Use(mw.Recover())
|
|
||||||
e.Use(mw.Logger())
|
e.Use(mw.Logger())
|
||||||
|
e.Use(mw.Recover())
|
||||||
|
|
||||||
// Routes
|
// Routes
|
||||||
e.Post("/users", createUser)
|
e.Post("/users", createUser)
|
||||||
|
|||||||
@@ -16,15 +16,9 @@ func main() {
|
|||||||
// Echo instance
|
// Echo instance
|
||||||
e := echo.New()
|
e := echo.New()
|
||||||
|
|
||||||
//------------
|
|
||||||
// Middleware
|
// Middleware
|
||||||
//------------
|
|
||||||
|
|
||||||
// Recover
|
|
||||||
e.Use(mw.Recover())
|
|
||||||
|
|
||||||
// Logger
|
|
||||||
e.Use(mw.Logger())
|
e.Use(mw.Logger())
|
||||||
|
e.Use(mw.Recover())
|
||||||
|
|
||||||
// Routes
|
// Routes
|
||||||
e.Get("/", hello)
|
e.Get("/", hello)
|
||||||
|
|||||||
@@ -23,12 +23,12 @@ func main() {
|
|||||||
// Middleware
|
// Middleware
|
||||||
//------------
|
//------------
|
||||||
|
|
||||||
// Recover
|
|
||||||
e.Use(mw.Recover())
|
|
||||||
|
|
||||||
// Logger
|
// Logger
|
||||||
e.Use(mw.Logger())
|
e.Use(mw.Logger())
|
||||||
|
|
||||||
|
// Recover
|
||||||
|
e.Use(mw.Recover())
|
||||||
|
|
||||||
// Basic auth
|
// Basic auth
|
||||||
e.Use(mw.BasicAuth(func(u, p string) bool {
|
e.Use(mw.BasicAuth(func(u, p string) bool {
|
||||||
if u == "joe" && p == "secret" {
|
if u == "joe" && p == "secret" {
|
||||||
|
|||||||
@@ -65,8 +65,8 @@ func main() {
|
|||||||
e := echo.New()
|
e := echo.New()
|
||||||
|
|
||||||
// Middleware
|
// Middleware
|
||||||
e.Use(mw.Recover())
|
|
||||||
e.Use(mw.Logger())
|
e.Use(mw.Logger())
|
||||||
|
e.Use(mw.Recover())
|
||||||
|
|
||||||
//------------------------
|
//------------------------
|
||||||
// Third-party middleware
|
// Third-party middleware
|
||||||
|
|||||||
@@ -310,9 +310,8 @@ func (r *router) ServeHTTP(w http.ResponseWriter, req *http.Request) {
|
|||||||
h, _ := r.Find(req.Method, req.URL.Path, c)
|
h, _ := r.Find(req.Method, req.URL.Path, c)
|
||||||
c.reset(w, req, r.echo)
|
c.reset(w, req, r.echo)
|
||||||
if h == nil {
|
if h == nil {
|
||||||
c.Error(&HTTPError{Code: http.StatusNotFound})
|
h = r.echo.notFoundHandler
|
||||||
} else {
|
|
||||||
h(c)
|
|
||||||
}
|
}
|
||||||
|
h(c)
|
||||||
r.echo.pool.Put(c)
|
r.echo.pool.Put(c)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -67,6 +67,7 @@ func main() {
|
|||||||
|
|
||||||
// Middleware
|
// Middleware
|
||||||
e.Use(mw.Logger())
|
e.Use(mw.Logger())
|
||||||
|
e.Use(mw.Recover())
|
||||||
|
|
||||||
// Routes
|
// Routes
|
||||||
e.Get("/", hello)
|
e.Get("/", hello)
|
||||||
|
|||||||
Reference in New Issue
Block a user