创建灵符入口:最简单的门户
rust
use axum::{Router, routing::get};
use std::net::SocketAddr;
#[tokio::main]
async fn main() {
// 创建路由器
let app = Router::new().route("/", get(root_handler));
// 监听 0.0.0.0:3000
let addr = SocketAddr::from(([0, 0, 0, 0], 3000));
println!("✨ 符文门户已开启于 {}", addr);
axum::Server::bind(&addr)
.serve(app.into_make_service())
.await
.unwrap();
}
async fn root_handler() -> &'static str {
"🌟 欢迎进入灵术之门!"
}
顾行云成功打开符文门户,浏览器中 /
显示欢迎词,他感受到第一次灵术可被世人见的震动。
进阶绑定:路径参数 + JSON 召唤
rust
use axum::{extract::Path, Json};
use serde::{Deserialize, Serialize};
#[derive(Serialize, Deserialize)]
struct Spell {
name: String,
level: u32,
}
async fn get_spell(Path(id): Path<u32>) -> Json<Spell> {
// 模拟查询
Json(Spell {
name: format!("第{}式·雷光破", id),
level: id * 10,
})
}
路由绑定:
rust
app.route("/spell/:id", get(get_spell));
他实现灵法资源 API,可供前端修真界调取术式信息。
中间术封印(Middleware)示例
加入访问日志:
rust
use tower_http::trace::TraceLayer;
app.layer(TraceLayer::new_for_http());
他借助中间封印术,实现统一审查、认证、限流等灵阵守护。
术式心法 · Web 修真三定律
通万域之术,需守门户;授万众之法,需通协议;护大道之稳,需施封印。