2025-09-13 13:02:17 +08:00

66 lines
1.9 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# circuit-virtual-lab-server
基于 Express + Prisma + PostgreSQL 的“虚拟电路实验室”后端,支持用户系统与“模型广场”。依赖管理使用 Bun。
## 主要技术
- Bun运行与依赖管理
- ExpressHTTP API
- PrismaORM + PostgreSQL数据库
- Basic Auth基础认证
## 环境
在项目根目录创建 `.env`(示例已提供)并设置:
```
DATABASE_URL="postgresql://user:pass@host:5432/dbname"
PORT=3000
```
## 安装与数据库
```bash
bun install
bun run prisma:generate
bun run prisma:migrate -- --name init
bun run db:seed
```
## 运行
```bash
bun run dev
# 或
bun run start
```
访问 `GET /health` 检查存活。
## 认证
所有需要认证的接口采用 Basic Auth。构造 `Authorization: Basic base64(username:password)`
示例种子创建了用户:`admin/admin123`
## API 概览
用户
- POST `/api/users/register`,注册 { username, password }
- GET `/api/users/me`,获取当前用户(需认证)
- PUT `/api/users/me`,更新资料(可含 avatarBase64、avatarMime需认证
- GET `/api/users/:id/avatar`,获取头像二进制
模型广场
- POST `/api/models`,创建模型(需认证)
- PUT `/api/models/:id`,更新模型(需认证且需作者)
- DELETE `/api/models/:id`,删除模型(需认证且需作者)
- GET `/api/models/:id`,模型详情
- GET `/api/models`,列表,支持 queryq、authorId、page、pageSize、sort=new|old
- GET `/api/models/:id/model.json`,下载模型 JSON
- GET `/api/models/:id/preview`,获取预览图
字段说明
- 模型title、authorId、descmarkdown、modelJSON、preview二进制
- 用户username、password哈希、avatar二进制
## 注意
- 不使用本地文件持久化,所有数据保存在 PostgreSQL。
- 预览图与头像以二进制保存在表中,并带 `*Mime` 字段标注类型。