FastAPI 最佳架构

4 阅读2分钟

分享一个一直在打磨和优化的 fastapi 项目:fastapi_best_architecture

项目简称 fba,目前架构已基本稳定,生产可用,不算很重型的项目吧,后期还想实现的可能就是 AI 集成和配套前端,但应该不会有工作流/租户这些业务,看个人时间和兴趣,没啥具体计划

最后,项目架构源码全量开源,MIT 协议,任何个人或企业均可免费使用且无需保留版权和许可声明

特征

  • 全局 FastAPI PEP 593 Annotated 参数风格
  • async/await + asgiref 的全局异步设计
  • 遵循 Restful API 规范
  • 全局 SQLAlchemy 2.0 语法
  • Pydantic v1 和 v2 (不同分支)
  • Casbin RBAC 访问控制模型
  • 角色菜单 RBAC 访问控制模型
  • Celery 异步任务
  • JWT 中间件白名单认证
  • 全局自定义时区时间
  • Docker / Docker-compose 部署
  • Pytest 单元测试

内置功能

  • 用户管理:系统用户角色管理,权限分配
  • 部门管理:配置系统组织机构(公司、部门、小组...)
  • 菜单管理:配置系统菜单,用户菜单,按钮权限标识
  • 角色管理:角色菜单权限分配,角色路由权限分配
  • 字典管理:维护系统内部常用固定数据或参数
  • 令牌管理:系统用户在线状态检测,支持踢人下线
  • 登录认证:基于后端的图形验证码后台认证登录
  • 多点登录:通过用户信息一键修改多点登录支持
  • OAuth20:内置自研 OAuth 2.0 登录集成
  • 代码生成:后端代码自动生成,支持预览,写入及下载
  • 定时任务:自动化任务,异步任务,支持函数调用
  • 插件系统:通过热插拔插件模式告别高耦合集成
  • 操作日志:系统正常和异常操作的日志记录与查询
  • 登录日志:用户正常和异常登录的日志记录与查询
  • 服务监控:服务器硬件设备信息与状态
  • 接口文档:自动生成在线交互式 API 文档