diff --git a/Cargo.toml b/Cargo.toml index 2632abf..b4c0dcd 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -20,7 +20,7 @@ name = "demo" name = "echo" [dependencies] -axum = { version = "0.6.0-rc.1", features = ["json"] } +axum = { version = "0.6.20", features = ["json"] } clap = { version = "4", features = ["derive", "env"] } once_cell = "1.18" prometheus = "0.13" diff --git a/examples/demo/main.rs b/examples/demo/main.rs index 80b7316..15f81aa 100644 --- a/examples/demo/main.rs +++ b/examples/demo/main.rs @@ -3,7 +3,7 @@ // SPDX-License-Identifier: AGPL-3.0-or-later use servus::axum::{ - extract::{self, Extension}, + extract::{self, State}, http::StatusCode, response::IntoResponse, routing::{get, post}, @@ -76,7 +76,7 @@ struct Message { } async fn post_message( - Extension(state): Extension>, + State(state): State>, extract::Json(payload): extract::Json, ) -> StatusCode { info!( @@ -100,7 +100,7 @@ async fn post_message( StatusCode::OK } -async fn get_messages(Extension(state): Extension>) -> impl IntoResponse { +async fn get_messages(State(state): State>) -> impl IntoResponse { info!(message = "got get messages request!"); let q = sqlx::query!("select * from guestbook") diff --git a/src/http/mod.rs b/src/http/mod.rs index dff1146..d133fd8 100644 --- a/src/http/mod.rs +++ b/src/http/mod.rs @@ -8,7 +8,7 @@ pub mod metrics; -use axum::{extract::Extension, http::StatusCode, middleware, routing, Router, Server}; +use axum::{http::StatusCode, middleware, routing, Router, Server}; use std::net::SocketAddr; use tower_http::trace::{DefaultMakeSpan, TraceLayer}; use tracing::{error, Level}; @@ -35,7 +35,7 @@ use tracing::{error, Level}; pub async fn serve( http_address: SocketAddr, metrics_address: Option, - router: Router, + router: Router, state: S, ) where S: Send + Sync + Clone + 'static, @@ -43,7 +43,7 @@ pub async fn serve( // create primary application router and server // applying handler state if we have it, and default metrics/tracing middleware let r = router - .layer(Extension(state)) + .with_state(state) .route_layer(middleware::from_fn(metrics::middleware)) // only record matched routes .layer( TraceLayer::new_for_http().make_span_with(