插件开发
约 736 字大约 2 分钟
后端
我们创建了一个插件模板仓库 fba_plugin_template 用于插件开发,开发步骤参考如下:
APP 说明
独立 app
在
backend/app
目录下的应用(admin、task...),视为独立 app非独立 app
现有 app 的扩展功能
插件目录结构
- backendfba 目录
- pluginfba 目录
- xxx插件名
- api接口,务必查看下方【插件接口】
- …
- crudCRUD
- …
- model模型
- __init__.py必须在此文件内导入所有模型类
- …
- schema数据传输
- …
- service服务
- …
- utils工具包,如果插件无需独立工具,则无需此目录
- …
- __init__.py作为 python 包保留(必须项)
- conf.py常量配置,如果插件不需要独立常量配置,则无需此文件
- plugin.toml插件配置文件(必填项)
- README.md插件使用说明
- requirements.txt依赖包文件(非必须项)如果插件不需要安装额外依赖,则无需此文件
- api接口,务必查看下方【插件接口】
- xxx插件名
- pluginfba 目录
插件接口
插件路由
如果插件符合插件开发的要求,则插件中的所有路由都将自动注入到 FastAPI 应用中,无需任何其他操作,但值得注意的是,启动时间可能会随着插件数量的递增而增加,因为 fba 会在启动前对所有插件进行解析
插件配置
plugin.toml
是插件的配置文件,它必须存在,此配置文件需根据插件的属性进行定义
独立 app
# app 配置 [app] # 插件路由器版本,默认为 v1(可参考源码 `backend/app/admin/api/router.py`) router = ['v1']
非独立 app
# app 配置 [app] # 此插件属于哪个 app include = '' # api 配置 # xxx 对应的是插件 api 目录下的接口文件名(不包含后缀) # 例如接口文件名为 notice.py,则 xxx 应该为 notice # 如果包含多个接口文件,则应存在多个相应的 api 配置 [api.xxx] # 路由前缀,必须以 '/' 开头 prefix = '' # 标签,用于接口文档 tags = ''
前端
暂无此计划...