插件开发
约 958 字大约 3 分钟
后端
插件目录结构
- backend固定目录 必须
- plugin固定目录 必须
- xxx插件名 必须
- api接口 必须
- …
- crudCRUD 非必须
- …
- model模型 非必须
- __init__.py在此文件内导入所有模型类 必须
- …
- schema数据传输 非必须
- …
- service服务 非必须
- …
- utils工具包 非必须
- …
- __init__.py作为 python 包保留 必须
- conf.py常量配置 非必须
- plugin.toml插件配置文件 必须
- README.md插件使用说明 必须
- requirements.txt依赖包文件 非必须; 如果插件需要安装依赖,则为 必须
- api接口 必须
- xxx插件名 必须
- plugin固定目录 必须
插件分类
与插件相关的部分文档中,可能高频次出现以下两个词
应用级插件
在 项目结构 中,app 目录下的一级文件夹被视为应用,此原理同样应用于插件系统。也就是说,如果插件被开发为应用,那么它们将会像应用一样被注入到系统中,我们称这类插件为【应用级插件】
扩展级插件
与【应用级插件】相反,如果插件不被开发为应用,那么它们将被开发为 app 目录下已存在应用的扩展功能,我们称这类插件为【扩展级插件】
插件路由结构
如果插件符合插件开发的要求,则插件中的所有路由都将自动注入到 FastAPI 应用中。但值得注意的是,启动时间可能会随着插件数量的递增而增加,因为 fba 会在启动前对所有插件进行解析
插件配置
plugin.toml
是插件的配置文件,它必须存在,此配置文件需根据插件的属性进行定义
应用级插件
# 应用配置
[app]
# 插件路由器实例,默认为 v1,可参考源码:backend/app/admin/api/router.py
router = ['v1']
扩展级插件
# 应用配置
[app]
# 此插件属于哪个 app
include = ''
# 接口配置
# xxx 对应的是插件 api 目录下的接口文件名(不包含后缀)
# 例如接口文件名为 notice.py,则 xxx 应该为 notice
# 如果包含多个接口文件,则应存在多个相应的 api 配置
[api.xxx]
# 路由前缀,必须以 '/' 开头
prefix = ''
# 标签,用于 FastAPI 接口文档
tags = ''
前端
暂无此计划...