基于rust axum 完成web端手脚架 基础权限,用户,缓存,验证,代码生成

cassie_axum

介绍

基于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 协议》,转载必须注明作者和本文链接
讨论数量: 1

大佬 captcha 可以在输入验证码的时候忽略大小写吗 比如 全部大写或者全部小写

2年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!