mirror of
https://github.com/tokio-rs/axum.git
synced 2025-02-16 18:31:51 +01:00
52 lines
1 KiB
Rust
52 lines
1 KiB
Rust
//! Run with
|
|
//!
|
|
//! ```not_rust
|
|
//! cargo run -p example-routes-and-handlers-close-together
|
|
//! ```
|
|
|
|
use axum::{
|
|
routing::{get, post, MethodRouter},
|
|
Router,
|
|
};
|
|
|
|
#[tokio::main]
|
|
async fn main() {
|
|
let app = Router::new()
|
|
.merge(root())
|
|
.merge(get_foo())
|
|
.merge(post_foo());
|
|
|
|
let listener = tokio::net::TcpListener::bind("127.0.0.1:3000")
|
|
.await
|
|
.unwrap();
|
|
println!("listening on {}", listener.local_addr().unwrap());
|
|
axum::serve(listener, app).await.unwrap();
|
|
}
|
|
|
|
fn root() -> Router {
|
|
async fn handler() -> &'static str {
|
|
"Hello, World!"
|
|
}
|
|
|
|
route("/", get(handler))
|
|
}
|
|
|
|
fn get_foo() -> Router {
|
|
async fn handler() -> &'static str {
|
|
"Hi from `GET /foo`"
|
|
}
|
|
|
|
route("/foo", get(handler))
|
|
}
|
|
|
|
fn post_foo() -> Router {
|
|
async fn handler() -> &'static str {
|
|
"Hi from `POST /foo`"
|
|
}
|
|
|
|
route("/foo", post(handler))
|
|
}
|
|
|
|
fn route(path: &str, method_router: MethodRouter<()>) -> Router {
|
|
Router::new().route(path, method_router)
|
|
}
|