【Axum】请求共享状态
状态 请求 共享
2023-09-27 14:23:46 时间
环境
- Time 2022-01-19
- Rust 1.58.0
- Axum 0.4.4
概念
参考:https://docs.rs/axum/latest/axum/index.html
示例
main.rs
use axum::extract::Extension;
use axum::AddExtensionLayer;
use axum::{routing::get, Router};
use std::{net::SocketAddr, sync::Arc};
struct State {
name: String,
}
#[tokio::main]
async fn main() {
let shared_state = Arc::new(State {
name: "JiangBo".to_owned(),
});
let app = Router::new()
.route("/", get(home))
.layer(AddExtensionLayer::new(shared_state));
let addr = SocketAddr::from(([127, 0, 0, 1], 4444));
println!("listening on {addr}");
axum::Server::bind(&addr)
.serve(app.into_make_service())
.await
.unwrap();
}
async fn home(Extension(state): Extension<Arc<State>>) -> String {
state.name.clone()
}
总结
通过定义一个共享的变量,在每个请求中共享状态。
附录
相关文章
- TCP 连接状态
- 如何通过curl命令调用某个请求,并且只返回请求的http状态码?
- Java描述设计模式(21):状态模式
- 网站验证码不显示,报错:无法向会话状态服务器发出会话状态请求请。确保 ASP.NET State Service (ASP.NET 状态服务)已启动
- 基于Volley,Gson封装支持JWT无状态安全验证和数据防篡改的GsonRequest网络请求类
- 计算机网络安全基础知识2:http超文本传输协议,请求request消息的get和post,响应response消息的格式,响应状态码
- Android | 程序的停止状态
- C#【多线程篇】模拟网络通信定时心跳检测连接状态(AutoResetEvent)
- 测试人不得不知的 HTTP 状态码知识
- 《C#多线程编程实战(原书第2版)》——1.6 检测线程状态
- 【QT】QtCreator卸载与安装(非正常状态)
- 关于HTTP请求出现 405状态码 not allowed的解决办法
- Unity Android 之 获取蓝牙Bluetooth 的状态,设置的蓝牙Bluetooth 的开关状态,并监听蓝牙Bluetooth 的状态变化方法整理
- easyui-如何判断的 dialog 是 打开还是关闭状态?