基於rust axum 完成web端手腳架 基礎許可權,使用者,快取,驗證,程式碼生成

18591992168發表於2022-02-09

介紹

基於rust axum 完成web端手腳架 基礎許可權,使用者,快取,驗證,程式碼生成

#####

rust axum web 是rust開發的web手腳架專案

軟體架構

軟體架構說明

  1. rust web框架
  2. web:axum
  3. 資料庫:mysql
  4. Orm:Ribatis
  5. RBAC:cabin-rs
  6. 驗證碼:captcha
  7. 資料驗證:validator

開發計劃

  1. 基礎快取定義,ORM框架定義
  2. 返回資料格式定義
  3. 完成casbin的基礎RABC許可權整合
  4. TODO 微服務整合 KONG閘道器整合
  5. nacos註冊中心整合
  6. 動態表單實現

已完成

  1. 基礎快取定義,redis
  2. orm框架選用Ribatis
  3. casbin-rs整合,介面卡編寫
  4. 使用者許可權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();
}

框架說明

  1. casbin.org/docs/zh-CN/overview
  2. rbatis.github.io/rbatis.io/#/
  3. axum.rs/

參與貢獻

String 348040933@qq.com

初學者 axum 和 cabin-rs整合 歡迎大家指正
gitee.com/stringlxd/cassie_axum.gi...

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章