2.8 KiB
2.8 KiB
KintoneAppBuilder
特性
- 使用 Python 3.8 的 FastAPI
- 结合 Typescript、Redux 和 react-router 的 React 16
- Postgres 数据库
- 用于迁移的 SqlAlchemy 和 Alembic
- 后端测试的 Pytest
- 前端测试的 Jest
- 遵循 Airbnb 代码风格的 Prettier/Eslint
- 方便开发的 Docker compose
- 用于实现后端和前端在同一端口上的 Nginx 反向代理
开发
此项目唯一的依赖应为 docker 和 docker-compose。
快速开始
启动项目并启用热加载 (首次操作可能需要一些时间):
docker-compose up -d
运行 alembic 迁移(针对 users 表):
docker-compose run --rm backend alembic upgrade head
然后,导航到 http://localhost:8000
注:如果你最初看到一个带有 502:Bad Gateway 页面的 Nginx 错误,你可能需要等待 webpack 构建开发服务器(nginx 容器构建得更快)。
自动生成的文档将位于 http://localhost:8000/api/docs
重建容器:
docker-compose build
重启容器:
docker-compose restart
关闭容器:
docker-compose down
前端开发
作为 docker 内部运行的替代方案,直接使用 npm 有时更简单, 以便于更快的重加载。使用 npm 运行:
cd frontend
npm install
npm start
这应将你重定向到 http://localhost:3000
前端测试
cd frontend
npm install
npm test
迁移
使用 alembic 运行迁移。运行所有迁移:
docker-compose run --rm backend alembic upgrade head
创建新的迁移:
alembic revision -m "create users table"
并填写 upgrade 和 downgrade 方法。更多信息请参阅
Alembic 的官方文档。
测试
存在一个用于前端和后端测试的辅助脚本:
./scripts/test.sh
后端测试
docker-compose run backend pytest
此命令之后也可以传递给 pytest 的任何参数
前端测试
docker-compose run frontend test
这与从前端目录内运行 npm test 是相同的
日志
docker-compose logs
或针对特定服务:
docker-compose logs -f name_of_service # frontend|backend|db
项目布局
backend
└── app
├── alembic
│ └── versions # 迁移位置
├── api
│ └── api_v1
│ └── endpoints
├── core # 配置
├── db # 数据库模型
├── tests # pytest
└── main.py # 后端入口点
frontend
└── public
└── src
├── components
│ └── Home.tsx
├── config
│ └── index.tsx # 常量
├── __tests__
│ └── test_home.tsx
├── index.tsx # 入口点
└── App.tsx # 处理路由