@dtdyq/restbase 1.0.0 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +114 -24
- package/bin/restbase.ts +540 -1
- package/client/README.md +541 -0
- package/client/package.json +3 -2
- package/client/restbase-client.ts +1 -1
- package/package.json +7 -20
- package/src/rest.test.ts +1465 -0
- package/{server.ts → src/server.ts} +29 -2
- package/{types.ts → src/types.ts} +2 -0
- /package/{auth.ts → src/auth.ts} +0 -0
- /package/{crud.ts → src/crud.ts} +0 -0
- /package/{db.ts → src/db.ts} +0 -0
- /package/{logger.ts → src/logger.ts} +0 -0
- /package/{query.ts → src/query.ts} +0 -0
package/README.md
CHANGED
|
@@ -15,28 +15,81 @@
|
|
|
15
15
|
|
|
16
16
|
## 快速开始
|
|
17
17
|
|
|
18
|
+
### 方式一:全局安装(推荐)
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
bun install -g @dtdyq/restbase
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
安装后在任意目录使用 `restbase` 命令。所有配置通过 `.env` 文件读取:
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
# 生成 .env 配置模板
|
|
28
|
+
restbase env
|
|
29
|
+
|
|
30
|
+
# 前台启动(读取当前目录 .env)
|
|
31
|
+
restbase run
|
|
32
|
+
|
|
33
|
+
# 后台启动(daemon 模式)
|
|
34
|
+
restbase start
|
|
35
|
+
|
|
36
|
+
# 查看运行中的实例(含健康状态)
|
|
37
|
+
restbase status
|
|
38
|
+
|
|
39
|
+
# 查看某个实例的实时日志
|
|
40
|
+
restbase log <pid>
|
|
41
|
+
|
|
42
|
+
# 停止
|
|
43
|
+
restbase stop <pid> # 停止指定实例
|
|
44
|
+
restbase stop all # 停止所有实例
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
更新到最新版:
|
|
48
|
+
|
|
49
|
+
```bash
|
|
50
|
+
bun install -g @dtdyq/restbase@latest
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
### 方式二:从源码运行
|
|
54
|
+
|
|
18
55
|
```bash
|
|
19
56
|
bun install
|
|
20
|
-
bun run server.ts
|
|
57
|
+
bun run src/server.ts
|
|
21
58
|
```
|
|
22
59
|
|
|
60
|
+
### 验证
|
|
61
|
+
|
|
23
62
|
```bash
|
|
24
|
-
#
|
|
63
|
+
# 健康检查(返回实例状态 + 资源占用)
|
|
25
64
|
curl http://localhost:3333/api/health
|
|
65
|
+
# → { "code": "OK", "data": { "status": "healthy", "port": 3333, "pid": 12345, "uptime": 60, "memory": {...}, "cpu": {...} } }
|
|
26
66
|
|
|
27
67
|
# Basic Auth 查询
|
|
28
68
|
curl -u admin:admin http://localhost:3333/api/data/products
|
|
29
69
|
```
|
|
30
70
|
|
|
71
|
+
### 前端客户端
|
|
72
|
+
|
|
73
|
+
独立 npm 包,零依赖:
|
|
74
|
+
|
|
75
|
+
```bash
|
|
76
|
+
bun add @dtdyq/restbase-client
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
```ts
|
|
80
|
+
import RestBase, { gt } from "@dtdyq/restbase-client";
|
|
81
|
+
|
|
82
|
+
const rb = new RestBase(); // 同源部署不传参
|
|
83
|
+
await rb.auth.login("admin", "admin");
|
|
84
|
+
const data = await rb.table("products").query().where(gt("price", 100)).data();
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
详见 [client/README.md](client/README.md)。
|
|
88
|
+
|
|
31
89
|
## 构建与部署
|
|
32
90
|
|
|
33
91
|
```bash
|
|
34
|
-
bun run build #
|
|
35
|
-
bun run build:linux # Linux x64
|
|
36
|
-
bun run build:linux-arm # Linux ARM64
|
|
37
|
-
bun run build:mac # macOS x64
|
|
38
|
-
bun run build:mac-arm # macOS ARM64
|
|
39
|
-
bun run build:windows # Windows x64
|
|
92
|
+
bun run build # 编译为当前平台独立二进制
|
|
40
93
|
|
|
41
94
|
# 运行二进制(无需 Bun 运行时)
|
|
42
95
|
./restbase
|
|
@@ -46,6 +99,7 @@ bun run build:windows # Windows x64
|
|
|
46
99
|
|
|
47
100
|
| 变量 | 说明 | 默认值 |
|
|
48
101
|
|:--------------------------|:---------------------------|:--------------------|
|
|
102
|
+
| `SVR_NAME` | 实例名称(`status` 中显示) | 空 |
|
|
49
103
|
| `SVR_PORT` | 服务端口 | `3333` |
|
|
50
104
|
| `SVR_STATIC` | 静态文件目录(前端托管) | 空 |
|
|
51
105
|
| `SVR_API_LIMIT` | API 限流(每秒每接口请求数) | `100` |
|
|
@@ -65,7 +119,7 @@ bun run build:windows # Windows x64
|
|
|
65
119
|
## 测试
|
|
66
120
|
|
|
67
121
|
```bash
|
|
68
|
-
bun test rest.test.ts # 137+ 用例
|
|
122
|
+
bun test src/rest.test.ts # 137+ 用例
|
|
69
123
|
```
|
|
70
124
|
|
|
71
125
|
## 文档
|
|
@@ -73,30 +127,66 @@ bun test rest.test.ts # 137+ 用例
|
|
|
73
127
|
| 文档 | 内容 |
|
|
74
128
|
|:-------------------------------------------------|:--------------------------------------------------|
|
|
75
129
|
| [documents/server.md](documents/server.md) | 服务端详细文档 — 配置、全部 API 接口说明与示例、日志、部署 |
|
|
76
|
-
| [
|
|
130
|
+
| [client/README.md](client/README.md) | 前端客户端文档 — 安装、API 速查、QueryBuilder 链式调用、类型安全 SELECT |
|
|
77
131
|
| [documents/db_design.md](documents/db_design.md) | 数据库设计指南 — 表结构规范、约束、索引、设计模式与检查清单 |
|
|
78
132
|
| [documents/design.md](documents/design.md) | 需求与设计文档 — 架构设计、技术规格、完整接口定义 |
|
|
79
133
|
|
|
134
|
+
## CLI 命令
|
|
135
|
+
|
|
136
|
+
```
|
|
137
|
+
restbase <command> [arguments]
|
|
138
|
+
|
|
139
|
+
Commands:
|
|
140
|
+
run 前台启动服务(读取当前目录 .env)
|
|
141
|
+
start 后台启动(daemon 模式)
|
|
142
|
+
stop <pid|all> 停止后台实例
|
|
143
|
+
status 查看运行中的实例(含健康检查)
|
|
144
|
+
log <pid> 实时查看实例日志
|
|
145
|
+
env 在当前目录生成 .env 配置模板
|
|
146
|
+
version 显示版本号
|
|
147
|
+
help 显示帮助
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
所有配置通过 `.env` 文件管理,可在 `.env` 中设置 `SVR_NAME` 为实例命名。
|
|
151
|
+
|
|
152
|
+
实例元数据和默认日志存放在 `~/.restbase/`:
|
|
153
|
+
|
|
154
|
+
```
|
|
155
|
+
~/.restbase/
|
|
156
|
+
├── instances/ # 实例元数据(name/port/pid/logPath)
|
|
157
|
+
│ ├── 12345.json
|
|
158
|
+
│ └── 23456.json
|
|
159
|
+
└── logs/ # daemon 默认日志目录
|
|
160
|
+
├── 3333.log
|
|
161
|
+
├── 3333.out
|
|
162
|
+
└── 8080.log
|
|
163
|
+
```
|
|
164
|
+
|
|
80
165
|
## 文件结构
|
|
81
166
|
|
|
82
167
|
```
|
|
83
168
|
restbase/
|
|
84
|
-
├──
|
|
85
|
-
|
|
86
|
-
├──
|
|
87
|
-
├──
|
|
88
|
-
├──
|
|
89
|
-
├──
|
|
90
|
-
├──
|
|
169
|
+
├── bin/
|
|
170
|
+
│ └── restbase.ts # CLI 入口(run/start/stop/status)
|
|
171
|
+
├── src/
|
|
172
|
+
│ ├── server.ts # 服务启动
|
|
173
|
+
│ ├── types.ts # 配置 + 类型 + Zod Schema
|
|
174
|
+
│ ├── db.ts # 数据库
|
|
175
|
+
│ ├── auth.ts # 鉴权
|
|
176
|
+
│ ├── crud.ts # CRUD 路由
|
|
177
|
+
│ ├── query.ts # SQL 生成
|
|
178
|
+
│ ├── logger.ts # 日志
|
|
179
|
+
│ └── rest.test.ts # 集成测试
|
|
91
180
|
├── client/
|
|
92
|
-
│
|
|
181
|
+
│ ├── restbase-client.ts # 前端客户端(独立 npm 包 @dtdyq/restbase-client)
|
|
182
|
+
│ ├── README.md # 客户端文档
|
|
183
|
+
│ └── package.json
|
|
93
184
|
├── documents/
|
|
94
|
-
│ ├── design.md
|
|
95
|
-
│ ├── server.md
|
|
96
|
-
│ └──
|
|
97
|
-
├── init.sql
|
|
98
|
-
├──
|
|
99
|
-
├── .env / .env.test # 环境配置
|
|
185
|
+
│ ├── design.md # 需求设计文档
|
|
186
|
+
│ ├── server.md # 服务端文档
|
|
187
|
+
│ └── db_design.md # 数据库设计指南
|
|
188
|
+
├── init.sql # 初始化 SQL
|
|
189
|
+
├── .env / .env.test # 环境配置
|
|
100
190
|
└── package.json
|
|
101
191
|
```
|
|
102
192
|
|