Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
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 labstack#599
- Loading branch information