介紹
基於rust axum 完成web端手腳架 基礎許可權,使用者,快取,驗證,程式碼生成
#####
rust axum web 是rust開發的web手腳架專案
軟體架構
軟體架構說明
- rust web框架
- web:axum
- 資料庫:mysql
- Orm:Ribatis
- RBAC:cabin-rs
- 驗證碼:captcha
- 資料驗證:validator
開發計劃
- 基礎快取定義,ORM框架定義
- 返回資料格式定義
- 完成casbin的基礎RABC許可權整合
- TODO 微服務整合 KONG閘道器整合
- nacos註冊中心整合
- 動態表單實現
已完成
- 基礎快取定義,redis
- orm框架選用Ribatis
- casbin-rs整合,介面卡編寫
- 使用者許可權jwt 融合casbin-rs
使用說明
rust開發環境省略
1:初始化DB,新增配置
匯入db cassie_admin.sql
2:構建並啟動專案
cargo build
cago run
3:postman 匯入 axum.postman_collection.json
開始測試
/*
許可權中介軟體使用:
Auth是許可權認證驗證的核心入口
中介軟體的新增方式:
route("/index", get(index)).layer(extractor_middleware::<Auth>())
訪問/index的時候受許可權影響
*/
#[tokio::main]
async fn main() {
// 初始化日誌
tracing_subscriber::fmt::init();
//繫結埠 初始化 路由
let app = Router::new()
.route("/index", get(index)).layer(extractor_middleware::<Auth>())
.nest("/admin", admin::routers())
.nest("/api", api::routers());
println!("address:{}", &CONTEXT.config.server);
axum::Server::bind(&CONTEXT.config.server.parse().unwrap())
.serve(app.into_make_service())
.await
.unwrap();
}
框架說明
參與貢獻
String 348040933@qq.com
初學者 axum 和 cabin-rs整合 歡迎大家指正
gitee.com/stringlxd/cassie_axum.gi...
本作品採用《CC 協議》,轉載必須註明作者和本文連結