chore: initialize application scaffold
This commit is contained in:
+25
@@ -0,0 +1,25 @@
|
||||
# 接口文档
|
||||
|
||||
服务根路径:`/api/v1`
|
||||
|
||||
## 用户资源
|
||||
|
||||
### 获取用户列表
|
||||
|
||||
- 请求:`GET /api/v1/users`
|
||||
- 响应:`200 OK`
|
||||
|
||||
```json
|
||||
[{"id":"uuid","name":"示例用户","email":"demo@example.com","createdAt":"2026-08-23T00:00:00.000Z","updatedAt":"2026-08-23T00:00:00.000Z"}]
|
||||
```
|
||||
|
||||
### 创建用户
|
||||
|
||||
- 请求:`POST /api/v1/users`
|
||||
- 请求体:`name` 为 1 至 50 个字符,`email` 必须为邮箱格式。
|
||||
- 响应:`201 Created`
|
||||
- 冲突:邮箱已经存在时返回 `409 Conflict`。
|
||||
|
||||
```json
|
||||
{"name":"示例用户","email":"demo@example.com"}
|
||||
```
|
||||
@@ -0,0 +1,13 @@
|
||||
# 架构说明
|
||||
|
||||
## 分层职责
|
||||
|
||||
用户请求经过 Controller 到达 Service;Service 负责业务规则并调用 Repository;Repository 仅负责 TypeORM 持久化。Entity 映射数据库表,DTO 校验请求输入。
|
||||
|
||||
## 模块扩展
|
||||
|
||||
新增领域模块时,在 `apps/api/src/modules` 创建独立目录,并保持 `controller`、`service`、`repository`、`dto`、`entities` 的职责边界。跨模块调用应通过导出的服务完成,不应直接访问另一模块的 Repository。
|
||||
|
||||
## 前端划分
|
||||
|
||||
用户端与管理端各自独立构建、部署。页面放在 `pages`,可复用业务单元放在 `components`,HTTP 调用应集中到 `api` 目录,避免把网络逻辑散落在页面中。
|
||||
@@ -0,0 +1,25 @@
|
||||
# 数据库设计
|
||||
|
||||
## PostgreSQL 连接
|
||||
|
||||
服务端通过根目录 `.env` 中的 `DATABASE_HOST`、`DATABASE_PORT`、`DATABASE_NAME`、`DATABASE_USER` 与 `DATABASE_PASSWORD` 建立连接。生产环境禁止使用 `synchronize` 自动变更结构,应通过迁移文件管理变更。
|
||||
|
||||
## users 表
|
||||
|
||||
| 字段 | 类型 | 约束 | 说明 |
|
||||
| --- | --- | --- | --- |
|
||||
| id | uuid | 主键 | 用户唯一标识 |
|
||||
| name | varchar(50) | 非空 | 展示名称 |
|
||||
| email | varchar(120) | 非空、唯一 | 邮箱地址 |
|
||||
| created_at | timestamp | 非空 | 创建时间 |
|
||||
| updated_at | timestamp | 非空 | 更新时间 |
|
||||
|
||||
```sql
|
||||
CREATE TABLE users (
|
||||
id uuid PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
name varchar(50) NOT NULL,
|
||||
email varchar(120) NOT NULL UNIQUE,
|
||||
created_at timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
updated_at timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP
|
||||
);
|
||||
```
|
||||
Reference in New Issue
Block a user