mirror of
https://github.com/labstack/echo.git
synced 2025-11-06 08:59:21 +02:00
@@ -244,6 +244,12 @@ Middleware | Description
|
|||||||
|
|
||||||
##### [More...](https://labstack.com/echo/guide/middleware/)
|
##### [More...](https://labstack.com/echo/guide/middleware/)
|
||||||
|
|
||||||
|
#### Third-party Middleware
|
||||||
|
|
||||||
|
Middleware | Description
|
||||||
|
:--- | :---
|
||||||
|
[echoperm](https://github.com/xyproto/echoperm) | Keeping track of users, login states and permissions.
|
||||||
|
|
||||||
### Next
|
### Next
|
||||||
|
|
||||||
- Head over to [guide](https://labstack.com/echo/guide/installation/)
|
- Head over to [guide](https://labstack.com/echo/guide/installation/)
|
||||||
|
|||||||
@@ -124,6 +124,9 @@ type (
|
|||||||
// Error invokes the registered HTTP error handler. Generally used by middleware.
|
// Error invokes the registered HTTP error handler. Generally used by middleware.
|
||||||
Error(err error)
|
Error(err error)
|
||||||
|
|
||||||
|
// Handler returns the matched handler by router.
|
||||||
|
Handler() HandlerFunc
|
||||||
|
|
||||||
// Logger returns the `Logger` instance.
|
// Logger returns the `Logger` instance.
|
||||||
Logger() *log.Logger
|
Logger() *log.Logger
|
||||||
|
|
||||||
@@ -408,6 +411,10 @@ func (c *context) Echo() *Echo {
|
|||||||
return c.echo
|
return c.echo
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (c *context) Handler() HandlerFunc {
|
||||||
|
return c.handler
|
||||||
|
}
|
||||||
|
|
||||||
func (c *context) Logger() *log.Logger {
|
func (c *context) Logger() *log.Logger {
|
||||||
return c.echo.logger
|
return c.echo.logger
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package echo
|
package echo
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"bytes"
|
||||||
"errors"
|
"errors"
|
||||||
"io"
|
"io"
|
||||||
"net/http"
|
"net/http"
|
||||||
@@ -266,6 +267,21 @@ func TestContextServeContent(t *testing.T) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestContextHandler(t *testing.T) {
|
||||||
|
e := New()
|
||||||
|
r := e.Router()
|
||||||
|
b := new(bytes.Buffer)
|
||||||
|
|
||||||
|
r.Add(GET, "/handler", func(Context) error {
|
||||||
|
_, err := b.Write([]byte("handler"))
|
||||||
|
return err
|
||||||
|
}, e)
|
||||||
|
c := NewContext(nil, nil, e)
|
||||||
|
r.Find(GET, "/handler", c)
|
||||||
|
c.Handler()(c)
|
||||||
|
assert.Equal(t, "handler", b.String())
|
||||||
|
}
|
||||||
|
|
||||||
func testBindOk(t *testing.T, c Context, ct string) {
|
func testBindOk(t *testing.T, c Context, ct string) {
|
||||||
c.Request().Header().Set(HeaderContentType, ct)
|
c.Request().Header().Set(HeaderContentType, ct)
|
||||||
u := new(user)
|
u := new(user)
|
||||||
|
|||||||
Reference in New Issue
Block a user