Skip to content

Commit da774c6

Browse files
committed
update docs
1 parent 7378f89 commit da774c6

File tree

15 files changed

+164
-157
lines changed

15 files changed

+164
-157
lines changed

docs/.vuepress/bulletin.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
11
import {BulletinOptions} from "vuepress-theme-plume";
22

33
export const myBulletin: BulletinOptions = {
4-
layout: 'bottom-right',
54
enablePage: true,
65
lifetime: 'session',
76
contentType: 'markdown',
8-
// title: 'Vben Admin Antd',
9-
content: '欢迎大家闲聊,分享,提供建议,高频艾特,你们的活跃度是我更新的动力',
7+
title: 'FasAPI 最佳架构',
8+
content: '欢迎大家闲聊,分享,提供建议,高频艾特,你们的活跃度是我更新的动力 🌹',
109
}

docs/.vuepress/sidebar.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,9 @@ export const mySidebar: SidebarMulti = {
2525
{text: '分页', link: 'pagination'},
2626
{text: '自定义异常', link: '/planet', icon: 'fluent-color:receipt-16'},
2727
{text: '切换数据库', link: 'db'},
28+
{text: '鉴权', link: 'permission'},
2829
{text: 'JWT', link: 'jwt'},
2930
{text: 'RBAC', link: 'RBAC'},
30-
{text: '鉴权', link: 'permission'},
3131
{text: '数据规则', link: '/planet', icon: 'fluent-color:video-16'},
3232
{text: '代码生成', link: 'code-generation'},
3333
{text: '跨域', link: 'CORS'},

docs/guide/deploy/Docker.md

Lines changed: 23 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -24,13 +24,13 @@ title: Docker 部署
2424

2525
`backend` 目录中,创建环境变量文件
2626

27-
```shell
27+
```shell:no-line-numbers
2828
touch .env
2929
```
3030

3131
将初始化环境变量配置拷贝到环境变量文件中
3232

33-
```shell
33+
```shell:no-line-numbers
3434
cp .env.example .env
3535
```
3636

@@ -40,15 +40,15 @@ title: Docker 部署
4040

4141
如果容器要在本地启动,需要将 `.env` 中的 `127.0.0.1` 更改为 `host.docker.internal`
4242

43-
```shell
44-
docker build -f backend/Dockerfile -t fba_backend_independent .
43+
```shell:no-line-numbers
44+
docker build -f Dockerfile -t fba_backend_independent .
4545
```
4646

4747
5. 启动容器
4848

4949
由于构建不包含数据库,请确保本地已安装并启动相关数据库(mysql / postgresql、redis)
5050

51-
```shell
51+
```shell:no-line-numbers
5252
docker run -d -p 8000:8000 --name fba_server fba_backend_independent
5353
```
5454

@@ -85,7 +85,8 @@ title: Docker 部署
8585

8686
::: warning
8787
如果你需要使用 PostgreSQL 数据库,执行命令前,需修改 `.env.server` 部分配置如下:
88-
```env
88+
```env:no-line-numbers
89+
# Database
8990
DATABASE_TYPE='postgresql'
9091
DATABASE_HOST='fba_postgres'
9192
DATABASE_PORT=5432
@@ -102,8 +103,8 @@ title: Docker 部署
102103
services:
103104
fba_server:
104105
build:
105-
context: ../../../
106-
dockerfile: backend/Dockerfile
106+
context: .
107+
dockerfile: Dockerfile
107108
image: fba_server:latest
108109
container_name: fba_server
109110
restart: always
@@ -247,8 +248,8 @@ title: Docker 部署
247248

248249
fba_celery:
249250
build:
250-
context: ../../../
251-
dockerfile: backend/Dockerfile
251+
context: .
252+
dockerfile: Dockerfile
252253
args:
253254
- SERVER_TYPE=celery
254255
image: fba_celery:latest
@@ -298,7 +299,7 @@ title: Docker 部署
298299
299300
命令执行期间遇到镜像拉取问题请自行 Google
300301
301-
```shell
302+
```shell:no-line-numbers
302303
docker-compose up -d --build
303304
```
304305

@@ -311,14 +312,13 @@ title: Docker 部署
311312

312313
1. 拉取代码到服务器
313314
2. env
314-
315-
:::: details Arco Desgin Vue
315+
::: tabs
316+
@tab <Icon name="icon-park-outline:new-lark" />Arco Desgin Vue
316317
修改 `.env.production` 中的 `VITE_API_BASE_URL` 为域名地址
317-
::::
318318

319-
:::: details Vben Admin Antd
320-
即将到来...
321-
::::
319+
@tab <Icon name="devicon:antdesign" />Vben Admin Antd
320+
生产中...
321+
:::
322322

323323
3. 更新 nginx 配置
324324

@@ -461,19 +461,19 @@ title: Docker 部署
461461
462462
创建网络
463463
464-
```shell
464+
```shell:no-line-numbers
465465
docker network create fba_network
466466
```
467467

468468
构建
469469

470-
```shell
470+
```shell:no-line-numbers
471471
docker-compose build fba_ui
472472
```
473473

474474
启动
475475

476-
```shell
476+
```shell:no-line-numbers
477477
docker-compose run fba_ui
478478
```
479479

@@ -491,18 +491,18 @@ title: Docker 部署
491491

492492
清理未使用的镜像
493493

494-
```shell
494+
```shell:no-line-numbers
495495
docker image prune
496496
```
497497

498498
清理未使用的容器
499499

500-
```shell
500+
```shell:no-line-numbers
501501
docker container prune
502502
```
503503

504504
清理所有未使用的镜像、容器、网络和构建缓存
505505

506-
```shell
506+
```shell:no-line-numbers
507507
docker system prune
508508
```

docs/guide/mixin/CRUD.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ class DateTimeMixin(MappedAsDataclass):
3737

3838
[MappedAsDataclass](https://docs.sqlalchemy.org/en/20/orm/dataclasses.html#orm-declarative-native-dataclasses)
3939

40-
声明性数据类基类, 它将带有数据类集成, 允许使用更高级配置;此基类适用于==不包含日期时间的模型==
40+
声明性数据类基类, 它将带有数据类集成, 允许使用更高级配置;此基类适用于==不包含日期时间的模型=={.warning}
4141

4242
```python
4343
class DataClassBase(MappedAsDataclass, MappedBase):

docs/guide/reference/CORS.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,8 @@ CORS_ALLOWED_ORIGINS: list[str] = [
1515

1616
## 服务器
1717

18-
HTTP 部署
18+
::: code-tabs
19+
@tab <Icon name="arcticons:http-custom" />HTTP
1920

2021
```py
2122
# [!code word:http]
@@ -24,7 +25,7 @@ CORS_ALLOWED_ORIGINS: list[str] = [
2425
]
2526
```
2627

27-
HTTPS 部署
28+
@tab <Icon name="ic:outline-https" /> HTTPS
2829

2930
```py
3031
# [!code word:https]

docs/guide/reference/RBAC.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -95,8 +95,8 @@ fba 中默认使用此鉴权方式
9595
```
9696

9797
3. 了解策略
98-
99-
p 策略
98+
::: tabs
99+
@tab p 策略
100100
- 添加基于角色的访问权限(推荐)
101101

102102
需要配合添加 g 策略才能实现用户访问权限,适合配置所有用户接口访问策略,拥有此角色的用户便能拥有相应的访问权限<br>
@@ -109,10 +109,10 @@ fba 中默认使用此鉴权方式
109109

110110
格式:`用户 uuid + 访问路径 path + 访问方法 method`
111111

112-
g 策略(基于 p 策略):
113-
- 添加基于角色的访问权限
112+
@tab g 策略
113+
当 p 策略为【添加基于角色的访问权限】时,需要此策略
114114

115-
格式:`用户 uuid + 角色 role`
115+
格式:`用户 uuid + 角色 role`
116116

117117
4. 添加策略
118118

docs/guide/reference/apscheduler.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,6 @@ FastAPI + APScheduler 现已作为独立仓库发行,它的优势在于其灵
1010
<RepoCard repo="fastapi-practices/fastapi_scheduler" />
1111

1212
::: warning
13-
此仓库 master 分支使用 APScheduler 4.x 版本进行开发,但由于 aps
14-
迟迟未发布 4.x 版本,所以请切换 apscheduler-3.x 分支,它是目前比较流行的版本分支,也相对比较稳定
13+
此仓库 master 分支使用 APScheduler 4.x 版本进行开发,但由于 APScheduler 迟迟未发布 4.x 版本,所以请切换 apscheduler-3.x
14+
分支,它是目前比较流行的版本分支,也相对比较稳定
1515
:::

docs/guide/reference/db.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ fba 支持 MySQL、PostgreSQL 两种数据库,默认配置使用 MySQL
1010

1111
如果本地未安装 PostgreSQL,你可以使用以下命令创建 Docker 镜像
1212

13-
```shell
13+
```shell:no-line-numbers
1414
docker run -d --name fba_postgres --restart always -e POSTGRES_DB='fba' -e POSTGRES_PASSWORD='123456' -e TZ='Asia/Shanghai' -v fba_postgres:/var/lib/postgresql/data -p 5432:5432 postgres:16
1515
```
1616

@@ -19,7 +19,7 @@ docker run -d --name fba_postgres --restart always -e POSTGRES_DB='fba' -e POSTG
1919
PostgreSQL 与 MySQL 在用户名、端口号等方面有所不同,如果你使用上面的命令创建了 Docker 镜像,需修改 `.env` 部分配置如下,否则,请根据
2020
PostgreSQL 配置进行修改
2121

22-
```env
22+
```env:no-line-numbers
2323
# Database
2424
DATABASE_TYPE='postgresql'
2525
DATABASE_HOST='127.0.0.1'

docs/guide/reference/response.md

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -19,15 +19,15 @@ class ResponseModel(BaseModel):
1919
以下是使用此模型进行返回的示例(遵循 FastAPI 官方教程),`response_model` 参数和 `->` 类型我们只需选择其中一种方式即可,因为
2020
FastAPI 会在内部自动解析并获取最终响应结构
2121

22-
`response_model` 参数
22+
`response_model` 参数
2323

2424
```python{1,3}
2525
@router.get('/test', response_model=ResponseModel)
2626
def test():
2727
return ResponseModel(data={'test': 'test'})
2828
```
2929

30-
`->` 类型
30+
`->` 类型
3131

3232
```python{2,3}
3333
@router.get('/test')
@@ -51,15 +51,15 @@ class ResponseSchemaModel(ResponseModel, Generic[SchemaT]):
5151

5252
这是我们创建的用于 Schema 模式的统一返回模型,它的用法与 `ResponseModel` 基本相似
5353

54-
`response_model` 参数
54+
`response_model` 参数
5555

5656
```python{1,3}
5757
@router.get('/test', response_model=ResponseSchemaModel[GetApiDetail])
5858
def test():
5959
return ResponseSchemaModel[GetApiDetail](data=GetApiDetail(...))
6060
```
6161

62-
`->` 类型
62+
`->` 类型
6363

6464
```python{2,3}
6565
@router.get('/test')
@@ -98,7 +98,8 @@ def test() -> ResponseSchemaModel[GetApiDetail]:
9898
它们都是同步方法,而不是异步。因为这些返回方法并不涉及 io 操作,所以,定义为异步,不但没有性能提升,反而增加了异步协程的开销
9999
:::
100100

101-
`success()`
101+
::: tabs
102+
@tab <Icon name="ix:success-filled" />`success()`
102103

103104
此方法通常作为默认响应方法使用,默认返回信息如下
104105

@@ -110,19 +111,19 @@ def test() -> ResponseSchemaModel[GetApiDetail]:
110111
}
111112
```
112113

113-
`fail()`
114+
@tab <Icon name="ix:namur-failure-filled" />`fail()`
114115

115116
此方法通常在接口响应信息为失败时使用,默认返回信息如下
116117

117118
```json
118119
{
119-
"code": 200,
120-
"msg": "请求成功",
120+
"code": 400,
121+
"msg": "请求错误",
121122
"data": null
122123
}
123124
```
124125

125-
`fast_success()`
126+
@tab <Icon name="ix:certificate-success-filled" />`fast_success()`
126127

127128
此方法通常仅用于接口返回大型 json 时,可为 json 解析性能带来质的提升,默认返回信息如下
128129

@@ -134,6 +135,8 @@ def test() -> ResponseSchemaModel[GetApiDetail]:
134135
}
135136
```
136137

138+
:::
139+
137140
## 响应状态码
138141

139142
在文件 `backend/common/response/response_code.py` 中内置了多种定义响应状态码的方式,我们可以根据 `CustomResponseCode`

docs/guide/reference/transaction.md

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -47,8 +47,7 @@ async def create(*, obj: CreateIns) -> None:
4747

4848
## 如何选择?
4949

50-
以上两种方法,我们更推荐第二种;
50+
以上两种方法,我们更推荐使用 `begin()`,理由如下:
5151

52-
对于 fba 来说,它更加符合架构风格,并且也能减少千篇一律的接口参数(纯作者强迫症)
53-
54-
而对于无需使用自动提交的事务,我们只需将 `begin()` 方法去掉,直接使用 `async_db_session()` 即可
52+
1. 对于 fba 来说,它更加符合架构风格,并且也能减少千篇一律的接口参数(纯作者强迫症)
53+
2. 而对于无需使用自动提交的事务,我们只需将 `begin()` 方法去掉,直接使用 `async_db_session()` 即可

0 commit comments

Comments
 (0)