mirror of
https://github.com/tokio-rs/axum.git
synced 2026-08-28 00:00:20 +02:00
* Only allow last extractor to mutate the request * Change `FromRequest` and add `FromRequestParts` trait (#1275) * Add `Once`/`Mut` type parameter for `FromRequest` and `RequestParts` * 🪄 * split traits * `FromRequest` for tuples * Remove `BodyAlreadyExtracted` * don't need fully qualified path * don't export `Once` and `Mut` * remove temp tests * depend on axum again Co-authored-by: Jonas Platte <[email protected]> * Port `Handler` and most extractors (#1277) * Port `Handler` and most extractors * Put `M` inside `Handler` impls, not trait itself * comment out tuples for now * fix lints * Reorder arguments to `Handler` (#1281) I think `Request<B>, Arc<S>` is better since its consistent with `FromRequest` and `FromRequestParts`. * Port most things in axum-extra (#1282) * Port `#[derive(TypedPath)]` and `#[debug_handler]` (#1283) * port #[derive(TypedPath)] * wip: #[debug_handler] * fix #[debug_handler] * don't need itertools * also require `Send` * update expected error * support fully qualified `self` * Implement FromRequest[Parts] for tuples (#1286) * Port docs for axum and axum-core (#1285) * Port axum-extra (#1287) * Port axum-extra * Update axum-core/Cargo.toml Co-authored-by: Jonas Platte <[email protected]> * remove `impl FromRequest for Either*` Co-authored-by: Jonas Platte <[email protected]> * New FromRequest[Parts] trait cleanup (#1288) * Make private module truly private again * Simplify tuple FromRequest implementation * Port `#[derive(FromRequest)]` (#1289) * fix tests * fix docs * revert examples * fix docs link * fix intra docs links * Port examples (#1291) * Document wrapping other extractors (#1292) * axum-extra doesn't need to depend on axum-core (#1294) Missed this in https://github.com/tokio-rs/axum/pull/1287 * Add `FromRequest` changes to changelogs (#1293) * Update changelog * Remove default type for `S` in `Handler` * Clarify which types have default types for `S` * Apply suggestions from code review Co-authored-by: Jonas Platte <[email protected]> Co-authored-by: Jonas Platte <[email protected]> * remove unused import * Rename `Mut` and `Once` (#1296) * fix trybuild expected output Co-authored-by: Jonas Platte <[email protected]>
124 lines
4.8 KiB
Markdown
124 lines
4.8 KiB
Markdown
# Changelog
|
|
|
|
All notable changes to this project will be documented in this file.
|
|
|
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
|
|
# Unreleased
|
|
|
|
- **breaking:** `FromRequest` has been reworked and `RequestParts` has been
|
|
removed. See axum's changelog for more details ([#1272])
|
|
- **added:** Added new `FromRequestParts` trait. See axum's changelog for more
|
|
details ([#1272])
|
|
- **breaking:** `BodyAlreadyExtracted` has been removed ([#1272])
|
|
|
|
[#1155]: https://github.com/tokio-rs/axum/pull/1155
|
|
[#1272]: https://github.com/tokio-rs/axum/pull/1272
|
|
|
|
# 0.2.7 (10. July, 2022)
|
|
|
|
- **fix:** Fix typos in `RequestParts` docs ([#1147])
|
|
|
|
[#1147]: https://github.com/tokio-rs/axum/pull/1147
|
|
|
|
# 0.2.6 (18. June, 2022)
|
|
|
|
- **change:** axum-core's MSRV is now 1.56 ([#1098])
|
|
|
|
[#1098]: https://github.com/tokio-rs/axum/pull/1098
|
|
|
|
# 0.2.5 (08. June, 2022)
|
|
|
|
- **added:** Automatically handle `http_body::LengthLimitError` in `FailedToBufferBody` and map
|
|
such errors to `413 Payload Too Large` ([#1048])
|
|
- **fixed:** Use `impl IntoResponse` less in docs ([#1049])
|
|
|
|
[#1048]: https://github.com/tokio-rs/axum/pull/1048
|
|
[#1049]: https://github.com/tokio-rs/axum/pull/1049
|
|
|
|
# 0.2.4 (02. May, 2022)
|
|
|
|
- **added:** Implement `IntoResponse` and `IntoResponseParts` for `http::Extensions` ([#975])
|
|
- **added:** Implement `IntoResponse` for `(http::response::Parts, impl IntoResponse)` ([#950])
|
|
- **added:** Implement `IntoResponse` for `(http::response::Response<()>, impl IntoResponse)` ([#950])
|
|
- **added:** Implement `IntoResponse for (Parts | Request<()>, $(impl IntoResponseParts)+, impl IntoResponse)` ([#980])
|
|
|
|
[#950]: https://github.com/tokio-rs/axum/pull/950
|
|
[#975]: https://github.com/tokio-rs/axum/pull/975
|
|
[#980]: https://github.com/tokio-rs/axum/pull/980
|
|
|
|
# 0.2.3 (25. April, 2022)
|
|
|
|
- **added:** Add `response::ErrorResponse` and `response::Result` for
|
|
`IntoResponse`-based error handling ([#921])
|
|
|
|
[#921]: https://github.com/tokio-rs/axum/pull/921
|
|
|
|
# 0.2.2 (19. April, 2022)
|
|
|
|
- **added:** Add `AppendHeaders` for appending headers to a response rather than overriding them ([#927])
|
|
|
|
[#927]: https://github.com/tokio-rs/axum/pull/927
|
|
|
|
# 0.2.1 (03. April, 2022)
|
|
|
|
- **added:** Add `RequestParts::extract` which allows applying an extractor as a method call ([#897])
|
|
|
|
[#897]: https://github.com/tokio-rs/axum/pull/897
|
|
|
|
# 0.2.0 (31. March, 2022)
|
|
|
|
- **added:** Add `IntoResponseParts` trait which allows defining custom response
|
|
types for adding headers or extensions to responses ([#797])
|
|
- **breaking:** Using `HeaderMap` as an extractor will no longer remove the headers and thus
|
|
they'll still be accessible to other extractors, such as `axum::extract::Json`. Instead
|
|
`HeaderMap` will clone the headers. You should prefer to use `TypedHeader` to extract only the
|
|
headers you need ([#698])
|
|
|
|
This includes these breaking changes:
|
|
- `RequestParts::take_headers` has been removed.
|
|
- `RequestParts::headers` returns `&HeaderMap`.
|
|
- `RequestParts::headers_mut` returns `&mut HeaderMap`.
|
|
- `HeadersAlreadyExtracted` has been removed.
|
|
- The `HeadersAlreadyExtracted` variant has been removed from these rejections:
|
|
- `RequestAlreadyExtracted`
|
|
- `RequestPartsAlreadyExtracted`
|
|
- `<HeaderMap as FromRequest<_>>::Rejection` has been changed to `std::convert::Infallible`.
|
|
- **breaking:** `axum::http::Extensions` is no longer an extractor (ie it
|
|
doesn't implement `FromRequest`). The `axum::extract::Extension` extractor 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_extensions` has been removed.
|
|
- `RequestParts::extensions` returns `&Extensions`.
|
|
- `RequestParts::extensions_mut` returns `&mut Extensions`.
|
|
- `RequestAlreadyExtracted` has been removed.
|
|
- `<Request as FromRequest>::Rejection` is now `BodyAlreadyExtracted`.
|
|
- `<http::request::Parts as FromRequest>::Rejection` is now `Infallible`.
|
|
- `ExtensionsAlreadyExtracted` has been removed.
|
|
- **breaking:** `RequestParts::body_mut` now returns `&mut Option<B>` so the
|
|
body can be swapped ([#869])
|
|
|
|
[#698]: https://github.com/tokio-rs/axum/pull/698
|
|
[#699]: https://github.com/tokio-rs/axum/pull/699
|
|
[#797]: https://github.com/tokio-rs/axum/pull/797
|
|
[#869]: https://github.com/tokio-rs/axum/pull/869
|
|
|
|
# 0.1.2 (22. February, 2022)
|
|
|
|
- **added:** Implement `IntoResponse` for `bytes::BytesMut` and `bytes::Chain<T, U>` ([#767])
|
|
|
|
[#767]: https://github.com/tokio-rs/axum/pull/767
|
|
|
|
# 0.1.1 (06. December, 2021)
|
|
|
|
- **added:** `axum_core::response::Response` now exists as a shorthand for writing `Response<BoxBody>` ([#590])
|
|
|
|
[#590]: https://github.com/tokio-rs/axum/pull/590
|
|
|
|
# 0.1.0 (02. December, 2021)
|
|
|
|
- Initial release.
|