* begin threading the state through * Pass state to extractors * make state extractor work * make sure nesting with different states work * impl Service for MethodRouter<()> * Fix some of axum-macro's tests * Implement more traits for `State` * Update examples to use `State` * consistent naming of request body param * swap type params * Default the state param to () * fix docs references * Docs and handler state refactoring * docs clean ups * more consistent naming * when does MethodRouter implement Service? * add missing docs * use `Router`'s default state type param * changelog * don't use default type param for FromRequest and RequestParts probably safer for library authors so you don't accidentally forget * fix examples * minor docs tweaks * clarify how to convert handlers into services * group methods in one impl block * make sure merged `MethodRouter`s can access state * fix docs link * test merge with same state type * Document how to access state from middleware * Port cookie extractors to use state to extract keys (#1250) * Updates ECOSYSTEM with a new sample project (#1252) * Avoid unhelpful compiler suggestion (#1251) * fix docs typo * document how library authors should access state * Add `RequestParts::with_state` * fix example * apply suggestions from review * add relevant changes to axum-extra and axum-core changelogs * Add `route_service_with_tsr` * fix trybuild expectations * make sure `SpaRouter` works with routers that have state * Change order of type params on FromRequest and RequestParts * reverse order of `RequestParts::with_state` args to match type params * Add `FromRef` trait (#1268) * Add `FromRef` trait * Remove unnecessary type params * format * fix docs link * format examples * Avoid unnecessary `MethodRouter` * apply suggestions from review Co-authored-by: Dani Pardo <[email protected]> Co-authored-by: Jonas Platte <[email protected]>
4.5 KiB
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Unreleased
- breaking:
FromRequestandRequestPartshas a newStype param which represents the state (#1155)
0.2.6 (18. June, 2022)
- change: axum-core's MSRV is now 1.56 (#1098)
0.2.5 (08. June, 2022)
- added: Automatically handle
http_body::LengthLimitErrorinFailedToBufferBodyand map such errors to413 Payload Too Large(#1048) - fixed: Use
impl IntoResponseless in docs (#1049)
0.2.4 (02. May, 2022)
- added: Implement
IntoResponseandIntoResponsePartsforhttp::Extensions(#975) - added: Implement
IntoResponsefor(http::response::Parts, impl IntoResponse)(#950) - added: Implement
IntoResponsefor(http::response::Response<()>, impl IntoResponse)(#950) - added: Implement
IntoResponse for (Parts | Request<()>, $(impl IntoResponseParts)+, impl IntoResponse)(#980)
0.2.3 (25. April, 2022)
- added: Add
response::ErrorResponseandresponse::ResultforIntoResponse-based error handling (#921)
0.2.2 (19. April, 2022)
- added: Add
AppendHeadersfor appending headers to a response rather than overriding them (#927)
0.2.1 (03. April, 2022)
- added: Add
RequestParts::extractwhich allows applying an extractor as a method call (#897)
0.2.0 (31. March, 2022)
-
added: Add
IntoResponsePartstrait which allows defining custom response types for adding headers or extensions to responses (#797) -
breaking: Using
HeaderMapas an extractor will no longer remove the headers and thus they'll still be accessible to other extractors, such asaxum::extract::Json. InsteadHeaderMapwill clone the headers. You should prefer to useTypedHeaderto extract only the headers you need (#698)This includes these breaking changes:
RequestParts::take_headershas been removed.RequestParts::headersreturns&HeaderMap.RequestParts::headers_mutreturns&mut HeaderMap.HeadersAlreadyExtractedhas been removed.- The
HeadersAlreadyExtractedvariant has been removed from these rejections:RequestAlreadyExtractedRequestPartsAlreadyExtracted
<HeaderMap as FromRequest<_>>::Rejectionhas been changed tostd::convert::Infallible.
-
breaking:
axum::http::Extensionsis no longer an extractor (ie it doesn't implementFromRequest). Theaxum::extract::Extensionextractor is not impacted by this and works the same. This change makes it harder to accidentally remove all extensions which would result in confusing errors elsewhere (#699) This includes these breaking changes:RequestParts::take_extensionshas been removed.RequestParts::extensionsreturns&Extensions.RequestParts::extensions_mutreturns&mut Extensions.RequestAlreadyExtractedhas been removed.<Request as FromRequest>::Rejectionis nowBodyAlreadyExtracted.<http::request::Parts as FromRequest>::Rejectionis nowInfallible.ExtensionsAlreadyExtractedhas been removed.
-
breaking:
RequestParts::body_mutnow returns&mut Option<B>so the body can be swapped (#869)
0.1.2 (22. February, 2022)
- added: Implement
IntoResponseforbytes::BytesMutandbytes::Chain<T, U>(#767)
0.1.1 (06. December, 2021)
- added:
axum_core::response::Responsenow exists as a shorthand for writingResponse<BoxBody>(#590)
0.1.0 (02. December, 2021)
- Initial release.