191 lines
8.1 KiB
Markdown
191 lines
8.1 KiB
Markdown
|
# Changelog
|
||
|
|
||
|
## v4.1.2 (2020-06-02)
|
||
|
|
||
|
- fix that handles MethodNotAllowed with path variables, thank you @caseyhadden for your contribution
|
||
|
- fix to replace nested wildcards correctly in RoutePattern, thank you @@unmultimedio for your contribution
|
||
|
- History of changes: see https://github.com/go-chi/chi/compare/v4.1.1...v4.1.2
|
||
|
|
||
|
|
||
|
## v4.1.1 (2020-04-16)
|
||
|
|
||
|
- fix for issue https://github.com/go-chi/chi/issues/411 which allows for overlapping regexp
|
||
|
route to the correct handler through a recursive tree search, thanks to @Jahaja for the PR/fix!
|
||
|
- new middleware.RouteHeaders as a simple router for request headers with wildcard support
|
||
|
- History of changes: see https://github.com/go-chi/chi/compare/v4.1.0...v4.1.1
|
||
|
|
||
|
|
||
|
## v4.1.0 (2020-04-1)
|
||
|
|
||
|
- middleware.LogEntry: Write method on interface now passes the response header
|
||
|
and an extra interface type useful for custom logger implementations.
|
||
|
- middleware.WrapResponseWriter: minor fix
|
||
|
- middleware.Recoverer: a bit prettier
|
||
|
- History of changes: see https://github.com/go-chi/chi/compare/v4.0.4...v4.1.0
|
||
|
|
||
|
|
||
|
## v4.0.4 (2020-03-24)
|
||
|
|
||
|
- middleware.Recoverer: new pretty stack trace printing (https://github.com/go-chi/chi/pull/496)
|
||
|
- a few minor improvements and fixes
|
||
|
- History of changes: see https://github.com/go-chi/chi/compare/v4.0.3...v4.0.4
|
||
|
|
||
|
|
||
|
## v4.0.3 (2020-01-09)
|
||
|
|
||
|
- core: fix regexp routing to include default value when param is not matched
|
||
|
- middleware: rewrite of middleware.Compress
|
||
|
- middleware: suppress http.ErrAbortHandler in middleware.Recoverer
|
||
|
- History of changes: see https://github.com/go-chi/chi/compare/v4.0.2...v4.0.3
|
||
|
|
||
|
|
||
|
## v4.0.2 (2019-02-26)
|
||
|
|
||
|
- Minor fixes
|
||
|
- History of changes: see https://github.com/go-chi/chi/compare/v4.0.1...v4.0.2
|
||
|
|
||
|
|
||
|
## v4.0.1 (2019-01-21)
|
||
|
|
||
|
- Fixes issue with compress middleware: #382 #385
|
||
|
- History of changes: see https://github.com/go-chi/chi/compare/v4.0.0...v4.0.1
|
||
|
|
||
|
|
||
|
## v4.0.0 (2019-01-10)
|
||
|
|
||
|
- chi v4 requires Go 1.10.3+ (or Go 1.9.7+) - we have deprecated support for Go 1.7 and 1.8
|
||
|
- router: respond with 404 on router with no routes (#362)
|
||
|
- router: additional check to ensure wildcard is at the end of a url pattern (#333)
|
||
|
- middleware: deprecate use of http.CloseNotifier (#347)
|
||
|
- middleware: fix RedirectSlashes to include query params on redirect (#334)
|
||
|
- History of changes: see https://github.com/go-chi/chi/compare/v3.3.4...v4.0.0
|
||
|
|
||
|
|
||
|
## v3.3.4 (2019-01-07)
|
||
|
|
||
|
- Minor middleware improvements. No changes to core library/router. Moving v3 into its
|
||
|
- own branch as a version of chi for Go 1.7, 1.8, 1.9, 1.10, 1.11
|
||
|
- History of changes: see https://github.com/go-chi/chi/compare/v3.3.3...v3.3.4
|
||
|
|
||
|
|
||
|
## v3.3.3 (2018-08-27)
|
||
|
|
||
|
- Minor release
|
||
|
- See https://github.com/go-chi/chi/compare/v3.3.2...v3.3.3
|
||
|
|
||
|
|
||
|
## v3.3.2 (2017-12-22)
|
||
|
|
||
|
- Support to route trailing slashes on mounted sub-routers (#281)
|
||
|
- middleware: new `ContentCharset` to check matching charsets. Thank you
|
||
|
@csucu for your community contribution!
|
||
|
|
||
|
|
||
|
## v3.3.1 (2017-11-20)
|
||
|
|
||
|
- middleware: new `AllowContentType` handler for explicit whitelist of accepted request Content-Types
|
||
|
- middleware: new `SetHeader` handler for short-hand middleware to set a response header key/value
|
||
|
- Minor bug fixes
|
||
|
|
||
|
|
||
|
## v3.3.0 (2017-10-10)
|
||
|
|
||
|
- New chi.RegisterMethod(method) to add support for custom HTTP methods, see _examples/custom-method for usage
|
||
|
- Deprecated LINK and UNLINK methods from the default list, please use `chi.RegisterMethod("LINK")` and `chi.RegisterMethod("UNLINK")` in an `init()` function
|
||
|
|
||
|
|
||
|
## v3.2.1 (2017-08-31)
|
||
|
|
||
|
- Add new `Match(rctx *Context, method, path string) bool` method to `Routes` interface
|
||
|
and `Mux`. Match searches the mux's routing tree for a handler that matches the method/path
|
||
|
- Add new `RouteMethod` to `*Context`
|
||
|
- Add new `Routes` pointer to `*Context`
|
||
|
- Add new `middleware.GetHead` to route missing HEAD requests to GET handler
|
||
|
- Updated benchmarks (see README)
|
||
|
|
||
|
|
||
|
## v3.1.5 (2017-08-02)
|
||
|
|
||
|
- Setup golint and go vet for the project
|
||
|
- As per golint, we've redefined `func ServerBaseContext(h http.Handler, baseCtx context.Context) http.Handler`
|
||
|
to `func ServerBaseContext(baseCtx context.Context, h http.Handler) http.Handler`
|
||
|
|
||
|
|
||
|
## v3.1.0 (2017-07-10)
|
||
|
|
||
|
- Fix a few minor issues after v3 release
|
||
|
- Move `docgen` sub-pkg to https://github.com/go-chi/docgen
|
||
|
- Move `render` sub-pkg to https://github.com/go-chi/render
|
||
|
- Add new `URLFormat` handler to chi/middleware sub-pkg to make working with url mime
|
||
|
suffixes easier, ie. parsing `/articles/1.json` and `/articles/1.xml`. See comments in
|
||
|
https://github.com/go-chi/chi/blob/master/middleware/url_format.go for example usage.
|
||
|
|
||
|
|
||
|
## v3.0.0 (2017-06-21)
|
||
|
|
||
|
- Major update to chi library with many exciting updates, but also some *breaking changes*
|
||
|
- URL parameter syntax changed from `/:id` to `/{id}` for even more flexible routing, such as
|
||
|
`/articles/{month}-{day}-{year}-{slug}`, `/articles/{id}`, and `/articles/{id}.{ext}` on the
|
||
|
same router
|
||
|
- Support for regexp for routing patterns, in the form of `/{paramKey:regExp}` for example:
|
||
|
`r.Get("/articles/{name:[a-z]+}", h)` and `chi.URLParam(r, "name")`
|
||
|
- Add `Method` and `MethodFunc` to `chi.Router` to allow routing definitions such as
|
||
|
`r.Method("GET", "/", h)` which provides a cleaner interface for custom handlers like
|
||
|
in `_examples/custom-handler`
|
||
|
- Deprecating `mux#FileServer` helper function. Instead, we encourage users to create their
|
||
|
own using file handler with the stdlib, see `_examples/fileserver` for an example
|
||
|
- Add support for LINK/UNLINK http methods via `r.Method()` and `r.MethodFunc()`
|
||
|
- Moved the chi project to its own organization, to allow chi-related community packages to
|
||
|
be easily discovered and supported, at: https://github.com/go-chi
|
||
|
- *NOTE:* please update your import paths to `"github.com/go-chi/chi"`
|
||
|
- *NOTE:* chi v2 is still available at https://github.com/go-chi/chi/tree/v2
|
||
|
|
||
|
|
||
|
## v2.1.0 (2017-03-30)
|
||
|
|
||
|
- Minor improvements and update to the chi core library
|
||
|
- Introduced a brand new `chi/render` sub-package to complete the story of building
|
||
|
APIs to offer a pattern for managing well-defined request / response payloads. Please
|
||
|
check out the updated `_examples/rest` example for how it works.
|
||
|
- Added `MethodNotAllowed(h http.HandlerFunc)` to chi.Router interface
|
||
|
|
||
|
|
||
|
## v2.0.0 (2017-01-06)
|
||
|
|
||
|
- After many months of v2 being in an RC state with many companies and users running it in
|
||
|
production, the inclusion of some improvements to the middlewares, we are very pleased to
|
||
|
announce v2.0.0 of chi.
|
||
|
|
||
|
|
||
|
## v2.0.0-rc1 (2016-07-26)
|
||
|
|
||
|
- Huge update! chi v2 is a large refactor targetting Go 1.7+. As of Go 1.7, the popular
|
||
|
community `"net/context"` package has been included in the standard library as `"context"` and
|
||
|
utilized by `"net/http"` and `http.Request` to managing deadlines, cancelation signals and other
|
||
|
request-scoped values. We're very excited about the new context addition and are proud to
|
||
|
introduce chi v2, a minimal and powerful routing package for building large HTTP services,
|
||
|
with zero external dependencies. Chi focuses on idiomatic design and encourages the use of
|
||
|
stdlib HTTP handlers and middlwares.
|
||
|
- chi v2 deprecates its `chi.Handler` interface and requires `http.Handler` or `http.HandlerFunc`
|
||
|
- chi v2 stores URL routing parameters and patterns in the standard request context: `r.Context()`
|
||
|
- chi v2 lower-level routing context is accessible by `chi.RouteContext(r.Context()) *chi.Context`,
|
||
|
which provides direct access to URL routing parameters, the routing path and the matching
|
||
|
routing patterns.
|
||
|
- Users upgrading from chi v1 to v2, need to:
|
||
|
1. Update the old chi.Handler signature, `func(ctx context.Context, w http.ResponseWriter, r *http.Request)` to
|
||
|
the standard http.Handler: `func(w http.ResponseWriter, r *http.Request)`
|
||
|
2. Use `chi.URLParam(r *http.Request, paramKey string) string`
|
||
|
or `URLParamFromCtx(ctx context.Context, paramKey string) string` to access a url parameter value
|
||
|
|
||
|
|
||
|
## v1.0.0 (2016-07-01)
|
||
|
|
||
|
- Released chi v1 stable https://github.com/go-chi/chi/tree/v1.0.0 for Go 1.6 and older.
|
||
|
|
||
|
|
||
|
## v0.9.0 (2016-03-31)
|
||
|
|
||
|
- Reuse context objects via sync.Pool for zero-allocation routing [#33](https://github.com/go-chi/chi/pull/33)
|
||
|
- BREAKING NOTE: due to subtle API changes, previously `chi.URLParams(ctx)["id"]` used to access url parameters
|
||
|
has changed to: `chi.URLParam(ctx, "id")`
|