echo
echo copied to clipboard
High performance, minimalist Go web framework
### Issue Description Empty string turns into `false` bool during binding in requests with content types `multipart/form-data` and `application/x-www-form-urlencoded`. ### Checklist - [x] Dependencies installed - [x] No typos -...
### Issue Description As of today, [Logger Middleware](https://echo.labstack.com/middleware/logger/) does not support log level in the custom logger format. This makes all access logs being without log levels. #1649 is relevant...
### Issue Description I've had to implement a small service implementing parts of the docker registry API; the issue is that multiple endpoints look like `/v2//manifests/`, where `` may contain...
### Issue Description **Abstract:** [`func (r *Router) Find(method, path string, c Context)` (in file `router.go`)](https://github.com/labstack/echo/blob/7d41537e70ce8e3e25c2e8199c798c7cfe3d4299/router.go#L376) is sometimes given a *raw* path instead of a unescaped path, but because it has...
### Issue Description See the following code: ``` if err := c.Bind(req); err != nil { msg := "Unable to bind DataAPISearchProductsRequest: " + err.Error() return echo.NewHTTPError(http.StatusBadRequest, errors.New(msg)) } ```...
Before this commit, when passing a message to echo.NewHTTPError() that is not serializable, no error is returned, but a 200 Ok response with no content. I triggered this behavior by...
With this PR, I would like to add support for setting a default value if `c.Param` or `c.QueryParam` is empty.
### Issue Description Documentation suggests using the skipper function to skip over large response bodies. However, it is not obvious that the skipper function runs *before* the route handler, which...
### Issue Description When using both the "Logging" and "Timeout" middleware together, the client is getting the appropriate 503 response, but the logs show that the response was 200. ###...
### Issue Description The [Router](https://pkg.go.dev/github.com/labstack/echo/v4#Router) object does not allow custom HTTP methods like `COPY` or anything else. `func (n *node) addHandler(method string, h HandlerFunc)` and `func (n *node) findHandler(method string)...