Rust修仙之道 第十五章 宇界境 · Web 施术与符文互联

创建灵符入口:最简单的门户

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 修真三定律

通万域之术,需守门户;授万众之法,需通协议;护大道之稳,需施封印。


⬅️ 上一章            [下一章 待续➡️]