Skip to content

Commit 24c6cdc

Browse files
committed
update docs
1 parent 5845f64 commit 24c6cdc

File tree

6 files changed

+107
-69
lines changed

6 files changed

+107
-69
lines changed

docs/.vuepress/navbar.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ export const myNavbar = defineNavbarConfig([
4444
]
4545
},
4646
{
47-
text: 'v1.5.1',
47+
text: 'v1.5.2',
4848
items: [
4949
{
5050
text: '线上演示',

docs/frontend/arco.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,10 @@ badge:
1010
我们已于 2025 年 3 月 29 日对 Arco 仓库进行封存,此后它将不再接收任何更新。尽管做出这一决定让我们心生不舍,毕竟 Arco
1111
曾承载了我们无数的探索与期待,但技术的脚步永不停歇,为了顺应更高效、更前沿的发展需求,我们不得不迈向新的篇章。
1212

13-
至此,承蒙每一位大佬的厚爱,请与我们携手共进,打开 [Vben Admin Antd](./intro.md) 新篇章吧
13+
至此,承蒙每一位大佬的厚爱,请与我们携手共进,打开 [Vben Admin Antd](./intro.md) 新篇章
1414

1515
::: note
16-
此实施内部通过硬编码实现了 Casbin RBAC 鉴权,解耦较为复杂,需手动删除 casbin、API 管理及其所有调用
16+
此实施内部通过硬编码实现了 Casbin RBAC 鉴权,如需解耦,需手动删除 casbin、API 管理及其所有调用
1717
:::
1818

1919
::: caution

docs/frontend/intro.md

Lines changed: 4 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -4,29 +4,8 @@ title: 介绍
44

55
基于 Vben Admin Antd 构建的 fastapi_best_architecture 前端完整版实施
66

7-
::: info 施工进度
7+
::: warning
8+
fba 从始至终一直是企业级后端架构解决方案,并没有针对前端的专项计划,前端项目只是一项附加产物
89

9-
- [x] 验证码登录
10-
- [x] 菜单对接
11-
- [x] OAuth2
12-
- [x] 部门管理
13-
- [x] 用户管理
14-
- [x] 角色管理
15-
- [x] 菜单管理
16-
- [x] 插件管理
17-
- [x] 数据权限
18-
- [x] 登录日志
19-
- [x] 操作日志
20-
- [x] 系统监控
21-
- [x] Redis 监控
22-
- [ ] 代码生成
23-
- [x] SocketIO
24-
- [x] 在线用户
25-
- [ ] 通知公告
26-
- [ ] 字典数据
27-
- [ ] 参数配置
28-
- [ ] 定时任务
29-
- [x] 个人信息
30-
- [ ] ...
31-
32-
:::
10+
我们的团队中没有专业的前端工程师,如果您都此项目的发展和实施有更好的见解,请直接创建 Issues 或 PR
11+
:::

docs/plugin/dev.md

Lines changed: 60 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ title: 插件开发
77
::: steps
88

99
1. 拉取最新的 fba 项目到本地并配置好开发环境
10-
2. 通过 [插件分类](#插件分类)[插件路由结构](#插件路由结构)[插件配置](#插件配置)[数据库兼容性](#数据库兼容性)
10+
2. 通过 [插件类型](#插件类型)[插件路由](#插件路由)[插件配置](#插件配置)[数据库兼容性](#数据库兼容性)
1111
了解插件系统的运作机制
1212
3. 根据 [插件目录结构](#插件目录结构) 进行插件开发
1313
4. 完成插件开发
@@ -16,28 +16,30 @@ title: 插件开发
1616

1717
:::
1818

19-
### 插件分类
19+
### 插件类型
2020

2121
::: tabs#plugin
2222
@tab <Icon name="carbon:app" />应用级插件
2323
[项目结构](../backend/summary/intro.md#项目结构) 中,app
24-
目录下的一级文件夹被视为应用,此原理同样应用于插件系统。也就是说,如果插件被开发为应用,那么它们将会像应用一样被注入到系统中,我们称这类插件为【应用级插件】
24+
目录下的一级文件夹被视为应用,此原理同样应用于插件系统。
25+
26+
此类插件会像应用一样被注入到系统中,我们称这类插件为【应用级插件】
2527

2628
@tab <Icon name="fluent:table-simple-include-16-regular" />扩展级插件
27-
与【应用级插件】相反,如果插件不被开发为应用,那么它们将被开发为 app 目录下已存在应用的扩展功能,我们称这类插件为【扩展级插件】
29+
此类插件会被注入到 app 目录下已存在的应用中,我们称这类插件为【扩展级插件】
2830
:::
2931

30-
### 插件路由结构
32+
### 插件路由
3133

3234
如果插件符合插件开发的要求,则插件中的所有路由都将自动注入到 FastAPI 应用中。但值得注意的是,启动时间可能会随着插件数量的递增而增加,因为
33-
fba 会在启动前对所有插件进行解析
35+
fba 会在每次启动前对所有插件进行实时解析
3436

3537
::: tabs#plugin
3638
@tab <Icon name="carbon:app" />应用级插件
37-
插件路由结构应完全遵循 [路由结构](../backend/reference/router.md#路由结构) 进行开发
39+
应完全遵循 [路由结构](../backend/reference/router.md#路由结构) 进行开发
3840

3941
@tab <Icon name="fluent:table-simple-include-16-regular" />扩展级插件
40-
插件路由结构必须根据现有应用中的目录结构进行 1:1 复制,可参考 fba
42+
必须将应用中的 api 目录结构进行 1:1 复制,可参考 fba
4143
中的内置插件 [notice](https://github.com/fastapi-practices/fastapi_best_architecture/tree/master/backend/plugin/notice/api)
4244
:::
4345

@@ -46,7 +48,7 @@ fba 会在启动前对所有插件进行解析
4648
`plugin.toml` 是插件的配置文件,每个插件都必须包含此文件
4749

4850
::: caution
49-
此配置文件自 fba v1.3.0 版本起发生重大变更,仅向后兼容(低于此版本开发的插件将不可用)
51+
此配置文件自 fba v1.5.3 版本起发生重大变更,仅向后兼容(低于此版本开发的插件将不可用)
5052
:::
5153

5254
::: tabs#plugin
@@ -66,8 +68,9 @@ author = ''
6668

6769
# 应用配置
6870
[app]
69-
# 插件路由器实例,可参考源码:backend/app/admin/api/router.py,通常默认命名为 v1
70-
router = ['']
71+
# 路由器最终实例
72+
# 可参考源码:backend/app/admin/api/router.py,通常默认命名为 v1
73+
router = ['v1']
7174
```
7275

7376
@tab <Icon name="fluent:table-simple-include-16-regular" />扩展级插件
@@ -86,17 +89,17 @@ author = ''
8689

8790
# 应用配置
8891
[app]
89-
# 此插件属于哪个 app
90-
include = ''
92+
# 扩展的哪个应用
93+
extend = '应用文件夹名称'
9194

9295
# 接口配置
93-
# xxx 对应的是插件 api 目录下的接口文件名(不包含后缀)
94-
# 例如接口文件名为 notice.py,则 xxx 应该为 notice
95-
# 如果包含多个接口文件,则应存在多个相应的 api 配置
9696
[api.xxx]
97-
# xxx 路由前缀,必须以 '/' 开头
97+
# xxx 对应的是插件 api 目录下接口文件的文件名(不包含后缀)
98+
# 例如接口文件名为 notice.py,则 xxx 应该为 notice
99+
# 如果包含多个接口文件,则应存在多个接口配置
100+
# 路由前缀,必须以 '/' 开头
98101
prefix = ''
99-
# 标签,用于 FastAPI 接口文档
102+
# 标签,用于 Swagger 文档
100103
tags = ''
101104
```
102105

@@ -116,23 +119,52 @@ fba 内所有官方实现都同时兼容 mysql 和 postgresql,但我们不对
116119

117120
- xxx 插件名 <Badge type="danger" text="必须" />
118121
- api/ 接口 <Badge type="danger" text="必须" />
119-
- crud/ CRUD <Badge type="warning" text="非必须" />
120-
- model 模型 <Badge type="warning" text="非必须" />
121-
- __init__.py 在此文件内导入所有模型类 <Badge type="danger" text="必须" />
122+
- crud/ CRUD
123+
- model 模型
124+
- __init__.py 在此文件内导入所有模型类 <Badge type="danger" text="目录存在则必须" />
122125
-
123-
- schema/ 数据传输 <Badge type="warning" text="非必须" />
124-
- service/ 服务 <Badge type="warning" text="非必须" />
125-
- utils/ 工具包 <Badge type="warning" text="非必须" />
126+
- schema/ 数据传输
127+
- service/ 服务
128+
- utils/ 工具包
126129
- __init__.py 作为 python 包保留 <Badge type="danger" text="必须" />
127-
- … 更多内容,例如 enums.py... <Badge type="warning" text="非必须" />
130+
- … 更多内容,例如 enums.py...
128131
- plugin.toml 插件配置文件 <Badge type="danger" text="必须" />
129132
- README.md 插件使用说明和您的联系方式 <Badge type="danger" text="必须" />
130-
- requirements.txt 依赖包文件 <Badge type="warning" text="非必须" />
133+
- requirements.txt 依赖包文件
131134

132135
:::
133136

137+
::: warning
138+
非必要情况下,不建议引用架构中的现有方法,如果现有方法变更,则插件也必须同步变更,否则插件将不可用
139+
:::
140+
134141
## 前端
135142

136-
::: warning
137-
暂无此计划...
143+
::: steps
144+
145+
1. 拉取最新的 fba_ui 项目到本地并配置好开发环境
146+
2. 根据 [插件目录结构](#插件目录结构-1) 进行插件开发
147+
3. 完成插件开发
148+
149+
4. [插件分享](./share.md) <Badge type="warning" text="可选" />
150+
138151
:::
152+
153+
### 插件目录结构
154+
155+
插件统一放置在 `apps/web-antd/src/plugins` 目录下,以下是插件的目录结构
156+
157+
::: file-tree
158+
159+
- xxx 插件名
160+
- api/ 接口
161+
- langs 多语言
162+
- en-US
163+
- 插件名.json
164+
- zh-CN
165+
- 插件名.json
166+
- routes/ 路由
167+
- views/ 视图
168+
- … 更多内容
169+
170+
:::

docs/plugin/install.md

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,12 @@
11
---
2-
title: 快速开始
2+
title: 插件安装
33
---
44

5-
您可以将 [插件市场](../market.md) 中的插件通过以下方式进行安装:
5+
::: caution
6+
切勿在线上环境直接安装插件,以免带来不必要的损失
7+
:::
8+
9+
## 后端
610

711
:::: tabs
812
@tab 手动
@@ -43,13 +47,8 @@ title: 快速开始
4347
文件(如果存在)中的主键模式是否与你当前正在使用的主键模式相匹配,参考:[切换主键](../backend/reference/pk.md)
4448
:::
4549

46-
::: caution
47-
无论采用哪种安装方式,fba 服务都不会实时热重载,您必须重新启动,插件功能才能被正确加载到 FastAPI 应用中
48-
49-
原因:
50-
51-
1. 实时热重载是非线程安全模式,它会影响正在处理中的任务
52-
2. 插件可能包含环境变量配置,增加安全风险
53-
3. 频繁热重载可能引发内存泄漏
50+
## 前端
5451

55-
:::
52+
1. 获取插件仓库源码并下载
53+
2. 将下载的源码文件夹直接拷贝到 `apps/web-antd/src/plugins` 目录下
54+
3. 重启服务

docs/plugin/share.md

Lines changed: 30 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22
title: 插件分享
33
---
44

5+
## 后端
6+
57
:::: steps
68

79
1. 创建个人插件仓库
@@ -12,8 +14,7 @@ title: 插件分享
1214
`个人插件仓库名 == 插件名`
1315

1416
::: warning
15-
创建个人插件仓库的时候,应将 `backend/plugin` 目录下的插件(文件夹)名作为仓库名使用,这样,插件将符合 fba 内置规则,并允许通过
16-
git 快捷安装
17+
创建个人插件仓库的时候,应将 `backend/plugin` 目录下的插件(文件夹)名作为仓库名使用
1718

1819
插件总是独一无二的,不允许安装同名插件,所以我们在对插件进行命名时,应尽量保持其独特性
1920
:::
@@ -30,6 +31,33 @@ title: 插件分享
3031

3132
::::
3233

34+
## 前端
35+
36+
:::: steps
37+
38+
1. 创建个人插件仓库
39+
40+
使用插件模板仓库 [fba_ui_plugin_template](https://github.com/fastapi-practices/fba_ui_plugin_template)
41+
创建个人插件仓库,个人插件仓库命名请遵循以下规则:
42+
43+
`个人插件仓库名 == 插件名_ui`
44+
45+
::: warning
46+
创建个人插件仓库的时候,应将 `apps/web-antd/src/plugins` 目录下的插件(文件夹)名作为仓库名使用
47+
48+
插件总是独一无二的,不允许安装同名插件,所以我们在对插件进行命名时,应尽量保持其独特性
49+
:::
50+
51+
2. 上传代码
52+
53+
将本地插件文件夹中的所有文件拷贝到个人插件仓库中
54+
55+
::: caution
56+
应拷贝插件文件夹中的所有文件,而不是直接拷贝插件目录
57+
:::
58+
59+
::::
60+
3361
## 公开
3462

3563
我们为插件创建了一个 [插件市场](../market.md),用于展示和导航

0 commit comments

Comments
 (0)