mirror of
https://github.com/labstack/echo.git
synced 2024-11-30 08:46:41 +02:00
High performance, minimalist Go web framework
https://echo.labstack.com/
echogohttp2httpslabstack-echoletsencryptmicro-frameworkmicroservicemiddlewaresslwebweb-frameworkwebsocket
ef82f3e034
In HTTPSRedirect and similar middlewares, determining if redirection is needed using `c.IsTLS()` causes redirect loop when an application is running behind a TLS termination proxy, e.g. AWS ELB. Instead, I believe, redirection should be determined by `c.Scheme() != "https"`. This works well even behind a TLS termination proxy. |
||
---|---|---|
_fixture | ||
.github | ||
middleware | ||
.editorconfig | ||
.gitattributes | ||
.gitignore | ||
.travis.yml | ||
bind_test.go | ||
bind.go | ||
context_test.go | ||
context.go | ||
echo_go1.8_test.go | ||
echo_go1.8.go | ||
echo_test.go | ||
echo.go | ||
Gopkg.lock | ||
Gopkg.toml | ||
group_test.go | ||
group.go | ||
LICENSE | ||
log.go | ||
Makefile | ||
README.md | ||
response_test.go | ||
response.go | ||
router_test.go | ||
router.go | ||
util_go17.go | ||
util_go18.go |
Feature Overview
- Optimized HTTP router which smartly prioritize routes
- Build robust and scalable RESTful APIs
- Group APIs
- Extensible middleware framework
- Define middleware at root, group or route level
- Data binding for JSON, XML and form payload
- Handy functions to send variety of HTTP responses
- Centralized HTTP error handling
- Template rendering with any template engine
- Define your format for the logger
- Highly customizable
- Automatic TLS via Let’s Encrypt
- HTTP/2 support
Performance
Guide
Example
package main
import (
"net/http"
"github.com/labstack/echo"
"github.com/labstack/echo/middleware"
)
func main() {
// Echo instance
e := echo.New()
// Middleware
e.Use(middleware.Logger())
e.Use(middleware.Recover())
// Routes
e.GET("/", hello)
// Start server
e.Logger.Fatal(e.Start(":1323"))
}
// Handler
func hello(c echo.Context) error {
return c.String(http.StatusOK, "Hello, World!")
}
Support Us
- ⭐ the project
- Donate
- 🌎 spread the word
- Contribute to the project
Contribute
Use issues for everything
- For a small change, just send a PR.
- For bigger changes open an issue for discussion before sending a PR.
- PR should have:
- Test case
- Documentation
- Example (If it makes sense)
- You can also contribute by:
- Reporting issues
- Suggesting new features or enhancements
- Improve/fix documentation
Credits
- Vishal Rana - Author
- Nitin Rana - Consultant
- Contributors