第 16 章 插件系统
学习目标
学完本章,你应该能:
- 理解插件系统的设计理念(乐高式拼装)
- 了解插件的分组和安装方式
- 知道如何获取和使用插件
一、插件系统的愿景
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)