129 lines
2.6 KiB
Markdown
129 lines
2.6 KiB
Markdown
# 爱设计后端 API
|
||
|
||
基于 FastAPI 的付费下载平台后端
|
||
|
||
## 功能特性
|
||
|
||
- ✅ 用户注册/登录(JWT认证)
|
||
- ✅ 作品浏览/搜索
|
||
- ✅ 付费下载(易收米支付)
|
||
- ✅ 图片水印处理
|
||
- ✅ 缩略图生成
|
||
- ✅ 订单管理
|
||
- ✅ 支付回调处理
|
||
- ✅ 订单状态查询
|
||
- ✅ Docker 容器化部署
|
||
|
||
## 快速开始
|
||
|
||
### 1. 使用 Docker Compose(推荐)
|
||
|
||
```bash
|
||
# 启动所有服务
|
||
docker-compose up -d
|
||
|
||
# 查看日志
|
||
docker-compose logs -f
|
||
|
||
# 停止服务
|
||
docker-compose down
|
||
```
|
||
|
||
### 2. 本地开发
|
||
|
||
```bash
|
||
# 安装依赖
|
||
pip install -r requirements.txt
|
||
|
||
# 复制环境变量文件
|
||
cp .env.example .env
|
||
|
||
# 修改 .env 中的配置
|
||
|
||
# 启动服务
|
||
uvicorn app.main:app --reload --host 0.0.0.0 --port 8000
|
||
```
|
||
|
||
## API 文档
|
||
|
||
启动后访问:
|
||
- Swagger UI: http://localhost:8000/docs
|
||
- ReDoc: http://localhost:8000/redoc
|
||
|
||
## 目录结构
|
||
|
||
```
|
||
backend/
|
||
├── app/
|
||
│ ├── api/ # API 路由
|
||
│ ├── core/ # 核心配置
|
||
│ ├── models/ # 数据库模型
|
||
│ ├── schemas/ # Pydantic 模型
|
||
│ ├── services/ # 业务逻辑
|
||
│ ├── utils/ # 工具函数
|
||
│ └── main.py # 入口文件
|
||
├── uploads/ # 文件上传目录
|
||
│ ├── original/ # 原图(高清)
|
||
│ ├── watermarked/ # 带水印图
|
||
│ └── thumbnail/ # 缩略图
|
||
├── requirements.txt
|
||
├── Dockerfile
|
||
└── docker-compose.yml
|
||
```
|
||
|
||
## 环境变量
|
||
|
||
查看 `.env.example` 文件了解所有配置项
|
||
|
||
## 部署到生产环境
|
||
|
||
### 使用 Caddy
|
||
|
||
在服务器上创建 Caddyfile:
|
||
|
||
```
|
||
api.aishej.com {
|
||
reverse_proxy localhost:8000
|
||
}
|
||
```
|
||
|
||
然后启动 Caddy:
|
||
|
||
```bash
|
||
caddy start
|
||
```
|
||
|
||
## 接口列表
|
||
|
||
### 认证
|
||
- POST `/api/auth/register` - 用户注册
|
||
- POST `/api/auth/login` - 用户登录
|
||
|
||
### 作品
|
||
- GET `/api/works` - 作品列表
|
||
- GET `/api/works/{id}` - 作品详情
|
||
|
||
### 订单
|
||
- POST `/api/orders/create` - 创建订单
|
||
- POST `/api/orders/pay/{id}` - 支付订单(模拟支付,仅测试用)
|
||
- GET `/api/orders/my` - 我的订单
|
||
|
||
### 支付(易收米)
|
||
- POST `/api/payment/create/{order_id}` - 创建支付链接(真实支付)
|
||
- POST `/api/payment/notify` - 支付回调接口(易收米异步通知)
|
||
- GET `/api/payment/query/{order_number}` - 查询订单支付状态
|
||
- POST `/api/payment/cancel/{order_id}` - 取消订单
|
||
|
||
## 后续开发
|
||
|
||
- [ ] 接入真实支付接口(支付宝/微信)
|
||
- [ ] 作品上传管理
|
||
- [ ] 管理后台
|
||
- [ ] 数据统计
|
||
- [ ] Redis 缓存
|
||
- [ ] 日志系统
|
||
|
||
## License
|
||
|
||
MIT
|