Bunch of middlewares for Labstack Echo.
- Echo 4.x.x
Used for creating RESTful API entrypoints according the given struct.
This middleware must be set as a pre middleware.
Doing the following request:
X-Application-Version: vnd.github.v3
GET /toto
will be rewritten as:
GET /v3/toto
Bechmarks
[middlewarex]>> go test -bench .
goos: darwin
goarch: amd64
pkg: github.com/mdouchement/middlewarex
BenchmarkVersioningRW-8 300000 50608 ns/op // With header rewriting
BenchmarkVersioningVRwM-8 5000000 362 ns/op // Just versioned routes with the Versioning middleware present
BenchmarkVersioningVR-8 10000000 215 ns/op // Just versioned routes without the Versioning middleware
PASS
ok github.com/mdouchement/middlewarex 19.850s
If the header is not specified, no rewrittes are applied.
MIT
All PRs are welcome.
- Fork it
- Create your feature branch (git checkout -b my-new-feature)
- Commit your changes (git commit -am 'Add some feature')
- Push to the branch (git push origin my-new-feature)
- Create new Pull Request
As possible, run the following commands to format and lint the code:
# Format
find . -name '*.go' -not -path './vendor*' -exec gofmt -s -w {} \;
# Lint
golangci-lint run -c .golangci.yml