Skip to content

第 01 章 框架概览与核心特性 ​

学习目标 ​

学完本章,你应该能回答:

  1. fba 是什么?它和原生 FastAPI 有什么区别?
  2. fba 主要解决了哪些痛点?
  3. fba 有哪些核心特性?技术栈是什么?

一、什么是 fba ​

fba(FastAPI Best Architecture) 是一个基于 FastAPI 框架构建的企业级后端架构模板。

先搞清楚两个概念:

  • FastAPI:Python 生态里非常流行的 Web 框架,特点是性能高、代码简洁、自带交互式 API 文档。它解决的是"如何快速写一个接口"。
  • fba:在 FastAPI 之上,进一步解决"团队协作、长期维护时,代码怎么组织才不乱、权限日志缓存部署怎么搭"的问题。

一句话:FastAPI 教你写接口,fba 教你如何有章法地写一个能上生产线的完整后端项目。

fba 与原生 FastAPI 的定位关系 ​

关键理解:fba 不是"重写"或"替代" FastAPI,而是在 FastAPI 之上叠加了工程化规范。你用 fba,本质上还是在写 FastAPI 代码,只是有了清晰的目录、分层和现成的企业级组件。

二、fba 解决了什么痛点 ​

官方文档里有一句话很精准:

"fba 想解决的不是'怎么写一个接口',而是团队真的开始协作后,那些权限、日志、分层、部署、可维护性问题。"

具体来说,一个后端项目从"能跑"到"能长期维护、多人协作、上生产",会面临这些问题:

痛点表现fba 的解决方案
代码组织混乱各写各的,风格不一统一三层架构,边界清晰
权限控制难做每次都要自己写鉴权内置 JWT、RBAC(角色权限)、数据权限
响应格式不统一前端要写多套解析统一响应模型,全局一套格式
重复劳动每个表都手写增删改查CRUD 基类 + 代码生成器
接口慢每次都查数据库内置缓存系统、异步任务
部署麻烦环境不一致Docker Compose 一键编排
排查问题难日志散落全链路日志、Trace ID

痛点 → 方案 全景图 ​

三、核心特性 ​

fba 官方列出的主要特性:

  • 全异步设计:基于 async/await,充分利用异步性能
  • RESTful API 规范:接口风格统一,符合业界标准
  • 三层架构:API → Service → CRUD 分层,职责清晰
  • SQLAlchemy 2.0 现代语法:数据访问层用最新的 ORM 写法
  • Pydantic v2 全栈校验:请求参数、响应数据自动校验
  • 角色菜单 RBAC 权限:精细到按钮级的权限控制
  • 原生 Celery 异步任务:处理耗时后台任务
  • 自研 JWT 认证中间件:高性能、支持多端登录
  • 全局自定义时区:解决时区混乱问题
  • 一键 Docker 部署:MySQL / PostgreSQL 生产可用
  • Pytest 单元测试:集成测试框架
  • Grafana 可观测性:全链路监控

技术栈全景图 ​

四、术语解释(先扫盲) ​

学习 fba 前,先搞懂这些高频名词,后面会反复遇到:

术语通俗解释
API应用程序接口,这里指"对外的 HTTP 接口",前端通过它拿数据
ORM对象关系映射,让你用 Python 类来操作数据库表,不用手写 SQL
三层架构把代码分成"接口层 → 业务层 → 数据层"三层,各管各的
CRUD增(Create)删(Delete)改(Update)查(Read)四个基本操作的简称
Schema数据结构的"模板",用来定义和校验数据的形状
JWT一种身份令牌,登录后服务器发你一个 token,以后凭它访问
RBAC基于角色的权限控制,先定角色,再给角色分配权限
中间件请求进来和出去时都要经过的"关卡",可做鉴权、日志等
异步程序等待 IO(如查数据库)时不傻等,先干别的,提升并发

五、fba 提供的"开箱即用"功能清单 ​

启动 fba 后,你已经拥有一个带完整后台管理功能的后端系统:

  • 用户管理、部门管理、角色管理、菜单管理
  • 字典管理(全局参数统一维护)、参数管理(运行时动态配置)
  • 通知公告、令牌管理(在线监测 + 强制下线)
  • 多端登录(可切换单终端/多终端模式)
  • 自研 OAuth 2.0(第三方授权登录,如 GitHub、Google)
  • 插件系统(功能像乐高一样拼装)
  • 定时任务、代码生成器
  • 操作日志、登录日志
  • 缓存监控、服务监控
  • 自动生成 Swagger 交互式接口文档

这些功能都内置好了,你克隆下来就能用,这正是"开箱即用"的含义。

六、学习路径提示 ​

学完本章,你已经对 fba 有了整体认知。下一章我们将实际启动这个项目,亲手把它跑起来。

关键要点回顾:

  • fba 是"FastAPI 之上的企业级架构模板",不是替代 FastAPI
  • 核心价值:解决协作、权限、日志、缓存、部署、维护等工程问题
  • 技术栈:FastAPI + SQLAlchemy 2.0 + Pydantic v2 + PostgreSQL/MySQL + Redis + Celery
  • 三层架构(API/Service/CRUD)是它的灵魂,第 04 章会深入讲解

对应官方文档:简介(backend/summary/intro.html)、为什么选择我们(backend/summary/why.html)