Skip to content

第 16 章 插件系统 ​

学习目标 ​

学完本章,你应该能:

  1. 理解插件系统的设计理念(乐高式拼装)
  2. 了解插件的分组和安装方式
  3. 知道如何获取和使用插件

一、插件系统的愿景 ​

fba 的插件系统核心理念:

提供一个共创平台,告别高耦合集成,让功能变得像乐高一样随意拼装。

传统项目里,功能模块和主工程强耦合:想加个"邮件通知",得往主工程里塞一堆代码,不想用了还得费劲删干净。

fba 的插件系统让功能零耦合扩展:

  • 想用 → 安装插件
  • 不想用 → 卸载插件,主工程干干净净

强耦合 vs 插件化对比 ​

二、插件的分组 ​

插件市场按两个维度给插件分组,每个插件同时属于"端侧分组"和"维护分组":

维度分组说明
端侧后端安装到 backend/plugin 的插件
端侧前端安装到前端工程的插件(仓库名以 _ui 或 -ui 结尾)
维护官方由 fastapi-practices 组织维护
维护社区由社区开发者维护

例如一个插件可能标注为「后端 · 官方」。

插件分组示意 ​

三、插件管理能力 ​

fba 提供基础的插件管理能力:

  • 安装:一键安装插件到项目
  • 启停:启用或停用插件
  • 下载:下载插件包
  • 卸载:卸载插件,干净移除

插件生命周期 ​

四、使用插件前须知 ​

官方特别提醒(务必阅读前言):

  • 插件市场主要提供展示和导航功能
  • 第三方插件的质量、更新、收费、技术支持由插件开发者负责
  • 是否收费、是否提供源码、能否商用,都取决于插件开发者
  • 使用恶意插件造成的损失,官方不承担责任

简单说:官方维护的插件靠谱,社区插件需自行评估风险。

五、官方插件生态 ​

fba 官方维护了 28 个插件(数字会增长),覆盖:

  • Auth:认证相关插件(如 Casbin RBAC)
  • Storage:存储相关
  • Notification:通知相关(如 Email)
  • 其他功能模块

需要某个能力时,先去插件市场看看有没有现成插件。

六、插件开发(进阶) ​

fba 支持开发者自建插件,甚至企业可自建私有插件仓库。

插件开发有完整的规范(参见官方文档"插件开发"章节),核心要点:

  • 插件有独立的 plugin.toml 配置(含 [settings] 默认配置)
  • 插件可提供自己的 SQL 初始化脚本
  • 插件的默认配置优先级低于 .env 和环境变量

七、常见疑问 ​

Q1:插件和主工程真的完全解耦吗? 是的。插件独立安装、独立配置、独立卸载,主工程不包含插件的代码。这是插件系统最大的价值。

Q2:为什么企业要自建私有插件仓库? 有些企业内部有私有的功能模块,不适合公开到公共插件市场,自建私有仓库既能复用又能保密。

本章小结 ​

关键要点回顾:

  • 插件系统实现"乐高式"功能拼装,零耦合扩展
  • 插件分"后端/前端"和"官方/社区"两个维度
  • 支持安装、启停、下载、卸载
  • 社区插件需自行评估风险
  • 企业可自建私有插件仓库

下一步: 第 17 章讲代码生成器,帮你自动生成增删改查代码。


对应官方文档:插件-前言(plugin/before.html)、插件开发(plugin/dev.html)、插件安装(plugin/install.html)