1
0
mirror of https://github.com/labstack/echo.git synced 2024-11-24 08:22:21 +02:00
High performance, minimalist Go web framework https://echo.labstack.com/
Go to file
Martti T 9b0e63046b
Fluent Binder for Query/Path/Form binding (#1717) (#1736)
* Fluent Binder for Query/Path/Form binding.
* CI: report coverage for latest go (1.15) version
* improve docs, remove uncommented code
* separate unixtime with sec and nanosec precision binding
2021-01-08 00:43:38 +01:00
_fixture Adds IgnoreBase parameter to static middleware 2020-11-30 19:06:00 +01:00
.github Fluent Binder for Query/Path/Form binding (#1717) (#1736) 2021-01-08 00:43:38 +01:00
middleware Timeout middleware implementation for go1.13+ (#1743) 2021-01-05 11:14:51 +01:00
.editorconfig updated docs 2016-11-16 21:26:56 -08:00
.gitattributes Updated website and examples 2017-01-17 10:47:16 -08:00
.gitignore Fixed build 2017-06-28 19:08:45 -07:00
.travis.yml Update .travis.yml 2020-11-02 10:10:16 -05:00
bind_test.go Fix #1729 Binding query/path params and form fields to struct only works for explicit tags (#1734) 2021-01-05 11:04:24 +01:00
bind.go Fix #1729 Binding query/path params and form fields to struct only works for explicit tags (#1734) 2021-01-05 11:04:24 +01:00
binder_external_test.go Fluent Binder for Query/Path/Form binding (#1717) (#1736) 2021-01-08 00:43:38 +01:00
binder_go1.15_test.go Fluent Binder for Query/Path/Form binding (#1717) (#1736) 2021-01-08 00:43:38 +01:00
binder_test.go Fluent Binder for Query/Path/Form binding (#1717) (#1736) 2021-01-08 00:43:38 +01:00
binder.go Fluent Binder for Query/Path/Form binding (#1717) (#1736) 2021-01-08 00:43:38 +01:00
codecov.yml Adding Codecov configuration 2020-12-01 05:00:19 +00:00
context_test.go Merge branch 'master' into fix_router_find_after_invalid_set_param_values 2020-11-05 03:06:48 +00:00
context.go Merge branch 'master' into fix_router_find_after_invalid_set_param_values 2020-12-16 01:56:28 +00:00
echo_go1.13_test.go Add tests for HTTPError.Unwrap 2020-05-05 16:32:38 +02:00
echo_test.go Handle static routes with trailing slash (#1747) 2021-01-03 00:25:29 +01:00
echo.go Handle static routes with trailing slash (#1747) 2021-01-03 00:25:29 +01:00
go.mod Bumped version 2020-08-27 20:09:25 -07:00
go.sum Bumped version 2020-08-27 20:09:25 -07:00
group_test.go Revert "Add a test" 2020-12-17 02:01:57 +02:00
group.go Revert "Remove group.Use registering Any routes that break other routes" 2020-12-17 02:01:59 +02:00
ip_test.go Safer/trustable extraction of real ip from request (#1478) 2020-02-24 08:29:34 -08:00
ip.go Safer/trustable extraction of real ip from request (#1478) 2020-02-24 08:29:34 -08:00
LICENSE Update website 2017-01-09 20:20:51 -08:00
log.go the logging interface add SetHeader method (#1092) 2018-09-28 10:47:23 -07:00
Makefile Fluent Binder for Query/Path/Form binding (#1717) (#1736) 2021-01-08 00:43:38 +01:00
README.md Update README.md 2021-01-03 11:09:17 -08:00
response_test.go Add the ability to change the status code using Response beforeFuncs 2020-12-06 18:31:15 +03:30
response.go Add the ability to change the status code using Response beforeFuncs 2020-12-06 18:31:15 +03:30
router_test.go Do not handle special trailing slash case for partial prefix (#1741) 2021-01-03 19:35:00 +01:00
router.go Do not handle special trailing slash case for partial prefix (#1741) 2021-01-03 19:35:00 +01:00

Sourcegraph GoDoc Go Report Card Build Status Codecov Join the chat at https://gitter.im/labstack/echo Forum Twitter License

Supported Go versions

As of version 4.0.0, Echo is available as a Go module. Therefore a Go version capable of understanding /vN suffixed imports is required:

  • 1.9.7+
  • 1.10.3+
  • 1.14+

Any of these versions will allow you to import Echo as github.com/labstack/echo/v4 which is the recommended way of using Echo going forward.

For older versions, please use the latest v3 tag.

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

Benchmarks

Date: 2020/11/11
Source: https://github.com/vishr/web-framework-benchmark
Lower is better!

The benchmarks above were run on an Intel(R) Core(TM) i7-6820HQ CPU @ 2.70GHz

Guide

Installation

// go get github.com/labstack/echo/{version}
go get github.com/labstack/echo/v4

Example

package main

import (
  "net/http"
  "github.com/labstack/echo/v4"
  "github.com/labstack/echo/v4/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!")
}

Help

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

License

MIT