-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix(deps): update rust crate axum to 0.6.2 - abandoned #21
Conversation
@kory33 this PR contains breaking change, thus requires manual fix in order to be merged: |
93d15fd
to
7c9d86f
Compare
7c9d86f
to
0c1320a
Compare
0c1320a
to
d594f8c
Compare
引き継ぎました。レビューをお願いします。 @kory33 @KisaragiEffective |
4dc325a
to
5aa6954
Compare
5aa6954
to
ddf5cfa
Compare
Edited/Blocked NotificationRenovate will not automatically rebase this PR, because it does not recognize the last commit author and assumes somebody else may have edited the PR. You can manually request rebase by checking the rebase/retry box above. ⚠ Warning: custom changes will be lost. |
|
47c3a6c
to
fc314de
Compare
引き継ぎます。 |
すみません、 #48 の方で修正してしまいました |
Pull request was closed
Autoclosing SkippedThis PR has been flagged for autoclosing. However, it is being skipped due to the branch being already modified. Please close/delete it manually or report a bug if you think this is in error. |
This PR contains the following updates:
0.5.17
->0.6.2
Release Notes
tokio-rs/axum
v0.6.2
: axum - v0.6.2Compare Source
body_text
andstatus
methods to built-in rejections (#1612)runtime
feature ofhyper
when usingtokio
(#1671)v0.6.1
: axum - v0.6.1Compare Source
Router::with_state
(#1580)v0.6.0
: axum - v0.6.0Compare Source
Routing
fixed: Nested routers are now allowed to have fallbacks (#1521):
The outer router's fallback will still apply if a nested router doesn't have
its own fallback:
breaking: The request
/foo/
no longer matches/foo/*rest
. If you wantto match
/foo/
you have to add a route specifically for that (#1086)For example:
breaking: Path params for wildcard routes no longer include the prefix
/
. e.g./foo.js
will match/*filepath
with a value offoo.js
, not/foo.js
(#1086)For example:
fixed: Routes like
/foo
and/*rest
are no longer consideredoverlapping.
/foo
will take priority (#1086)For example:
breaking: Automatic trailing slash redirects have been removed.
Previously if you added a route for
/foo
, axum would redirect calls to/foo/
to/foo
(or vice versa for/foo/
):Either explicitly add routes for
/foo
and/foo/
or useaxum_extra::routing::RouterExt::route_with_tsr
if you want the old behavior(#1119)
breaking:
Router::fallback
now only acceptsHandler
s (similarly towhat
get
,post
, etc. accept). Use the newRouter::fallback_service
forsetting any
Service
as the fallback (#1155)This fallback on 0.5:
Becomes this in 0.6
changed:
Router::nest
now only acceptsRouter
s, the general-purposeService
nesting method has been renamed tonest_service
(#1368)breaking: Allow
Error: Into<Infallible>
forRoute::{layer, route_layer}
(#924)breaking:
MethodRouter
now panics on overlapping routes (#1102)breaking:
Router::route
now only acceptsMethodRouter
s created withget
,post
, etc. Use the newRouter::route_service
for routing toany
Service
s (#1155)breaking: Adding a
.route_layer
onto aRouter
orMethodRouter
without any routes will now result in a panic. Previously, this just did
nothing. #1327
breaking:
RouterService
has been removed sinceRouter
now implementsService
when the state is()
. UseRouter::with_state
to provide thestate and get a
Router<()>
. Note thatRouterService
only existed in thepre-releases, not 0.5 (#1552)
Extractors
added: Added new type safe
State
extractor. This can be used withRouter::with_state
and gives compile errors for missing states, whereasExtension
would result in runtime errors (#1155)We recommend migrating from
Extension
toState
for sharing application state since that is more typesafe and faster. That is done by using
Router::with_state
andState
.This setup in 0.5
Becomes this in 0.6 using
State
:If you have multiple extensions, you can use fields on
AppState
and implementFromRef
:breaking: It is now only possible for one extractor per handler to consume
the request body. In 0.5 doing so would result in runtime errors but in 0.6 it
is a compile error (#1272)
axum enforces this by only allowing the last extractor to consume the
request.
For example:
This is done by reworking the
FromRequest
trait and introducing a newFromRequestParts
trait.If your extractor needs to consume the request body then you should implement
FromRequest
, otherwise implementFromRequestParts
.This extractor in 0.5:
Becomes this in 0.6:
For an example of how to write an extractor that accepts different
Content-Types
see the [parse-body-based-on-content-type
][parse-body-based-on-content-type] example.added:
FromRequest
andFromRequestParts
derive macro re-exports from[
axum-macros
][axum-macros] behind themacros
feature (#1352)added: Add
RequestExt
andRequestPartsExt
which adds conveniencemethods for running extractors to
http::Request
andhttp::request::Parts
(#1301)added:
JsonRejection
now displays the path at which a deserializationerror occurred (#1371)
added: Add
extract::RawForm
for accessing raw urlencoded query bytes or request body (#1487)fixed: Used
400 Bad Request
forFailedToDeserializeQueryString
rejections, instead of
422 Unprocessable Entity
(#1387)changed: The inner error of a
JsonRejection
is nowserde_path_to_error::Error<serde_json::Error>
. Previously it wasserde_json::Error
(#1371)changed: The default body limit now applies to the
Multipart
extractor (#1420)breaking:
ContentLengthLimit
has been removed. UseDefaultBodyLimit
instead (#1400)breaking:
RequestParts
has been removed as part of theFromRequest
rework (#1272)
breaking:
BodyAlreadyExtracted
has been removed (#1272)breaking: The following types or traits have a new
S
type paramwhich represents the state (#1155):
Router
, defaults to()
MethodRouter
, defaults to()
FromRequest
, no defaultHandler
, no defaultbreaking:
MatchedPath
can now no longer be extracted in middleware fornested routes. In previous versions it returned invalid data when extracted
from a middleware applied to a nested router.
MatchedPath
can still beextracted from handlers and middleware that aren't on nested routers (#1462)
breaking: Rename
FormRejection::FailedToDeserializeQueryString
toFormRejection::FailedToDeserializeForm
(#1496)Middleware
middleware::from_fn
functions (#1088)middleware::from_fn_with_state
to enable running extractors that requirestate (#1342)
middleware::from_extractor_with_state
(#1396)map_request
,map_request_with_state
for transforming therequest with an async function (#1408)
map_response
,map_response_with_state
for transforming theresponse with an async function (#1414)
IntoResponse
(#1152)extractor_middleware
which was previously deprecated.Use
axum::middleware::from_extractor
instead (#1077)Handler::layer
to haveInfallible
as the error type (#1152)Misc
simple-router-wasm
examplefor more details (#1382)
ServiceExt
with methods for turning anyService
into aMakeService
similarly toRouter::into_make_service
(#1302)From
impls have been added toextract::ws::Message
to be more inline with
tungstenite
(#1421)#[derive(axum::extract::FromRef)]
(#1430)accept_unmasked_frames
setting in WebSocketUpgrade (#1529)WebSocketUpgrade::on_failed_upgrade
to customize what to dowhen upgrading a connection fails (#1539)
#[track_caller]
so the errormessage points to where the user added the invalid route, rather than
somewhere internally in axum (#1248)
S: Service
, the bounds have beenrelaxed so the response type must implement
IntoResponse
rather than being aliteral
Response
tokio
default feature needed for WASM support. If youdon't need WASM support but have
default_features = false
for other reasonsyou likely need to re-enable the
tokio
feature (#1382)handler::{WithState, IntoService}
are merged into one type,named
HandlerService
(#1418)Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by Mend Renovate. View repository job log here.