插件开发
约 1068 字大约 4 分钟
后端
插件类型
扩展级插件
此类插件会被注入到 app 目录下已存在的应用中,我们称这类插件为【扩展级插件】
插件路由
如果插件符合插件开发的要求,则插件中的所有路由都将自动注入到 FastAPI 应用中。但值得注意的是,启动时间可能会随着插件数量的递增而增加,因为 fba 会在每次启动前对所有插件进行实时解析
插件配置
plugin.toml
是插件的配置文件,每个插件都必须包含此文件
警告
此配置文件自 fba v1.5.3 版本起发生重大变更,仅向后兼容(低于此版本开发的插件将不可用)
应用级插件
# 插件信息
[plugin]
# 摘要(简短描述)
summary = ''
# 版本号
version = ''
# 描述
description = ''
# 作者
author = ''
# 应用配置
[app]
# 路由器最终实例
# 可参考源码:backend/app/admin/api/router.py,通常默认命名为 v1
router = ['v1']
扩展级插件
# 插件信息
[plugin]
# 摘要(简短描述)
summary = ''
# 版本号
version = ''
# 描述
description = ''
# 作者
author = ''
# 应用配置
[app]
# 扩展的哪个应用
extend = '应用文件夹名称'
# 接口配置
[api.xxx]
# xxx 对应的是插件 api 目录下接口文件的文件名(不包含后缀)
# 例如接口文件名为 notice.py,则 xxx 应该为 notice
# 如果包含多个接口文件,则应存在多个接口配置
# 路由前缀,必须以 '/' 开头
prefix = ''
# 标签,用于 Swagger 文档
tags = ''
数据库兼容性
fba 内所有官方实现都同时兼容 mysql 和 postgresql,但我们不对第三方插件进行强制要求,如果您对此感兴趣,请查看 SQLAlchemy 2.0 官方文档: with_variant
插件目录结构
插件统一放置在 backend/plugin
目录下,以下是插件的目录结构
xxx插件名 必须
api接口 必须
…
crudCRUD
…
model模型
__init__.py在此文件内导入所有模型类 目录存在则必须
…
schema数据传输
…
service服务
…
utils工具包
…
__init__.py作为 python 包保留 必须
…更多内容,例如 enums.py...
plugin.toml插件配置文件 必须
README.md插件使用说明和您的联系方式 必须
requirements.txt依赖包文件
注意
非必要情况下,不建议引用架构中的现有方法,如果现有方法变更,则插件也必须同步变更,否则插件将不可用
前端
插件目录结构
插件统一放置在 apps/web-antd/src/plugins
目录下,以下是插件的目录结构
xxx插件名
api接口
…
langs多语言
en-US
插件名.json
zh-CN
插件名.json
routes路由
…
views视图
…
…更多内容