1
0
mirror of https://github.com/labstack/echo.git synced 2024-12-18 16:20:53 +02:00
Commit Graph

1495 Commits

Author SHA1 Message Date
Vishal Rana
88a865e8a2 Changed version for master branch
Signed-off-by: Vishal Rana <vr@labstack.com>
2018-04-11 11:52:24 -07:00
Martin Tournoij
cf7b55584d Fix parameter routes with an extension (/foo/:id.json)
This is a follow-up to #1101. It turns out that that patch is
incomplete, as a similar check also needs to be added in the
`Router.Add()` method.

I don't understand why the test works fine, but when using it in a real
application. For example with this example:

	func main() {
		e := echo.New()
		e.GET("/xxx/:id.json", func(c echo.Context) error {
			return c.String(200, fmt.Sprintf("%#v: names: %#v; vals: %#v",
				c.Path(), c.ParamNames(), c.ParamValues()))
		})
		log.Fatal(e.Start(":8000"))
	}

Gives a 404 on `/xxx/42.json`, and for `/xxx/42` it gives the output:

	/xxx/:id.json": names: []string{"id.json"}; vals: []string{"42"}

It makes sense to add the test there too; I just don't get why the test
cases that I added in ##1101 *does* produce the correct output :-/
2018-04-10 14:54:01 -07:00
Vishal Rana
5b769f91b2 HTTPError#Inner to HTTPError#Internal
Signed-off-by: Vishal Rana <vr@labstack.com>
2018-04-10 12:06:31 -07:00
Martin Tournoij
bfa14633f3 Allow parameter routes to end with a dot (/foo/:id.json)
Currently a route in the form of `/foo/:id.json` means echo will detect
the parameter name `id.json` instead of the expected `id`. I think this
is rather counter-intuitive, as adding an extension to paths is a fairly
common use case.

With this change both a `/` and a `.` will be treated as the end of a
parameter name.

Benchmark before this change:

	$ go test -bench .
	[..]

	goos: linux
	goarch: amd64
	pkg: github.com/labstack/echo
	BenchmarkRouterStaticRoutes-4             100000             17743 ns/op               0 B/op          0 allocs/op
	BenchmarkRouterGitHubAPI-4                 50000             33081 ns/op               1 B/op          0 allocs/op
	BenchmarkRouterParseAPI-4                 300000              5370 ns/op               0 B/op          0 allocs/op
	BenchmarkRouterGooglePlusAPI-4            200000              9183 ns/op               0 B/op          0 allocs/op
	PASS
	ok      github.com/labstack/echo        8.565s

After this change:

	goos: linux
	goarch: amd64
	pkg: github.com/labstack/echo
	BenchmarkRouterStaticRoutes-4             100000             17699 ns/op               0 B/op          0 allocs/op
	BenchmarkRouterGitHubAPI-4                 50000             32962 ns/op               1 B/op          0 allocs/op
	BenchmarkRouterParseAPI-4                 300000              5450 ns/op               0 B/op          0 allocs/op
	BenchmarkRouterGooglePlusAPI-4            200000              9205 ns/op               0 B/op          0 allocs/op
	PASS
	ok      github.com/labstack/echo        8.590s

Fixes #599
2018-04-10 11:37:35 -07:00
Alexandre Stein
37f1a470ef Replace the redirection with a direct call to url package 2018-04-03 08:40:03 -07:00
Alexandre Stein
af1bfd5397 Clean old Go versions 2018-04-03 08:40:03 -07:00
Andrew Wilkins
60f88a7a1c Export version
I'm looking into implementing tracing middleware for Echo
(https://github.com/elastic/apm-agent-go/issues/20). I'd
like to report the version of the Echo framework in use.
2018-03-21 21:42:26 -07:00
Vishal Rana
a5d81b8d4a Updated deps, removed json-iterator, fixed #1087, fixed #1086
Signed-off-by: Vishal Rana <vr@labstack.com>
2018-03-16 10:00:59 -07:00
Florian Holzapfel
9aafcaf934 fix: BodyLimit middleware: limitedReader Reset does not reset read counter 2018-03-16 09:48:23 -07:00
Jeffrey Reuling (TI)
ee32e3e7fb fix issue #1086 2018-03-16 09:47:05 -07:00
Vishal Rana
d79727cf89
Update README.md 2018-03-15 07:01:18 -07:00
Vishal Rana
d9da3f1f6e
Update README.md 2018-03-15 00:59:32 -07:00
Vishal Rana
dc5cb1343b
Update README.md 2018-03-15 00:56:47 -07:00
Vishal Rana
2f9a8e148f
Update README.md 2018-03-15 00:54:56 -07:00
Vishal Rana
7f44549f02 Separate handling for pre middleware to improve performance
Signed-off-by: Vishal Rana <vr@labstack.com>
2018-03-14 23:53:32 -07:00
Vishal Rana
f4dde46fed Fixed build
Signed-off-by: Vishal Rana <vr@labstack.com>
2018-03-14 22:59:15 -07:00
Vishal Rana
003b0adaa5 Enhanced write content type
Signed-off-by: Vishal Rana <vr@labstack.com>
2018-03-14 22:51:06 -07:00
Vishal Rana
9cee664439 Removed go1.8
Signed-off-by: Vishal Rana <vr@labstack.com>
2018-03-14 21:10:27 -07:00
Vishal Rana
20ac716d4c Using json-iterator
Signed-off-by: Vishal Rana <vr@labstack.com>
2018-03-14 20:38:46 -07:00
Vishal Rana
62d3587b6f Minor performance fixes
Signed-off-by: Vishal Rana <vr@labstack.com>
2018-03-14 14:03:59 -07:00
Vishal Rana
bdb49be734 Added PROPFIND method
Signed-off-by: Vishal Rana <vr@labstack.com>
2018-03-13 12:45:47 -07:00
Alex Ungur
27b5253bfd Release 3.3.0:
Enhancements:
    Implemented Response#After()
    Dynamically add/remove proxy targets
    Rewrite rules for proxy middleware
    Add ability to extract key from a form field
    Implemented rewrite middleware
    Adds a separate flag for the 'http/https server started on' message (#1043)
    Applied a little DRY to the redirect middleware (#1053) and tests (#1055)
    Simplify dep fetching (#1062)
    Add custom time stamp format #1046 (#1066)
    Update property name & default value & comment about custom logger
    Add X-Requested-With header constant
    Return error of context.File in c.contentDisposition
    Updated deps
    Updated README.md

Fixes:

    Fixed Response#Before()
    Fixed #990
    Fix href url from armor to echo (#1051)
    Fixed #1054
    Fixed #1052, dropped param alias feature
    Avoid redirect loop in HTTPSRedirect middleware (#1058)
    Fix deferring body close in middleware/compress test (#1063)
    Cleanup code (#1061)
    FIX - We must close gzip.Reader, only if no error (#1069)
    Fix formatting (#1071)
    Can be a fix for auto TLS
2018-03-12 13:58:01 -07:00
Vishal Rana
f5491fda0d Updated deps
Signed-off-by: Vishal Rana <vr@labstack.com>
2018-03-12 13:03:49 -07:00
Vishal Rana
f32481f68c Revert "Fixed #1078"
This reverts commit 8e47545434.
2018-03-12 13:01:59 -07:00
Vishal Rana
8e47545434 Fixed #1078
Signed-off-by: Vishal Rana <vr@labstack.com>
2018-03-11 08:20:37 -07:00
Romain Gros
fb30777387 Return error of context.File in c.contentDisposition
context.Attachment and context.Inline use context.contentDisposition under the hood.
However, context.contentDisposition does not forward the error of context.File, leading to response 200 OK even when the file does not exist.
This commit forward the return value of context.File to context.contentDisposition to prevent that.
2018-03-06 10:50:53 -08:00
Alex Ungur
9b9f4facd6 Add X-Requested-With header constant 2018-03-06 10:29:20 -08:00
Alexandre Stein
3cdcc65b23 Add some tests 2018-03-01 12:08:34 -08:00
Alexandre Stein
931588a880 Update the dependency 2018-03-01 12:08:34 -08:00
Alexandre Stein
7f6c0f4fc0 Can be a fix for auto TLS 2018-03-01 12:08:34 -08:00
ferhat elmas
3641cbcdad Fix formatting (#1071) 2018-02-25 13:42:58 -08:00
Evgeniy Kulikov
6da0483447 [FIX] We must close gzip.Reader, only if no error (#1069)
* [FIX] We must close gzip.Reader, only if no error
* review comments fix
2018-02-23 11:32:27 -08:00
Vishal Rana
4f3080c197 Bit of more cleanup
Signed-off-by: Vishal Rana <vr@labstack.com>
2018-02-21 11:38:22 -08:00
Evgeniy Kulikov
f49d166e6f [FIX] Cleanup code (#1061)
Code cleanup
2018-02-21 10:44:17 -08:00
Evgeniy Kulikov
90d675fa2a [TravisCI] Add 1.10 release (#1068) 2018-02-21 09:55:08 -08:00
ferhat elmas
7eec915044 Fix deferring body close in middleware/compress test (#1063) 2018-02-19 08:21:01 -08:00
Airking05
181e11a330 [Add] custom time stamp format #1046 (#1066)
* [Add] custom time stamp format

* [Update] property name & default value & comment about custom logger
2018-02-19 08:05:09 -08:00
Evgeniy Kulikov
e9f67801e3 [FIX] Simplify dep fetching (#1062)
* [FIX] Simplify dep fetching

* fix Makefile
2018-02-11 07:30:38 -08:00
Vishal Rana
353564c797
Update README.md 2018-02-10 13:37:12 -08:00
Vishal Rana
fad19bf4ea
Update README.md 2018-02-05 22:41:57 -08:00
Vishal Rana
1a182abf25
Update README.md 2018-02-04 15:32:34 -08:00
orangain
ef82f3e034 Avoid redirect loop in HTTPSRedirect middleware (#1058)
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.
2018-02-02 07:31:07 -08:00
Vishal Rana
ec048ea523 Fixed #1052, dropped param alias feature
Signed-off-by: Vishal Rana <vr@labstack.com>
2018-01-30 19:02:29 -08:00
Vishal Rana
67a5dcdb91 Fixed #1054
Signed-off-by: Vishal Rana <vr@labstack.com>
2018-01-30 10:36:20 -08:00
Alexandru Ungur
7c1071dcb1 DRY'ed the redirect middleware tests a little (#1055) 2018-01-30 10:02:26 -08:00
Vishal Rana
f710bf653b
Update README.md 2018-01-29 23:15:41 -08:00
Vishal Rana
42aa667d3b
Update README.md 2018-01-29 20:38:18 -08:00
Vishal Rana
37a2533ad4 Updated readme
Signed-off-by: Vishal Rana <vr@labstack.com>
2018-01-29 20:03:53 -08:00
Brian Danowski
65f3fcbfe2 Adds example to readme (#1044) 2018-01-29 20:00:48 -08:00
Alexandru Ungur
2769113edf Applied a little DRY to the redirect middleware (#1053) 2018-01-29 19:54:02 -08:00