docs: 更新 README API 文档,补充完整路由列表
This commit is contained in:
@@ -55,7 +55,6 @@ cd server
|
|||||||
```properties
|
```properties
|
||||||
# application.properties
|
# application.properties
|
||||||
active=dev
|
active=dev
|
||||||
|
|
||||||
# application-dev.properties
|
# application-dev.properties
|
||||||
server.port=8080
|
server.port=8080
|
||||||
database.host=127.0.0.1
|
database.host=127.0.0.1
|
||||||
@@ -103,22 +102,22 @@ npm run dev
|
|||||||
import "kenaito-conf/kenaito-conf-go-client"
|
import "kenaito-conf/kenaito-conf-go-client"
|
||||||
|
|
||||||
cfg := &client.Config{
|
cfg := &client.Config{
|
||||||
BaseURL: "http://localhost:8080",
|
BaseURL: "http://localhost:8080",
|
||||||
AppName: "myapp",
|
AppName: "myapp",
|
||||||
Env: "dev",
|
Env: "dev",
|
||||||
Version: "latest",
|
Version: "latest",
|
||||||
Token: "app-token",
|
Token: "app-token",
|
||||||
SyncInterval: 30,
|
SyncInterval: 30,
|
||||||
CacheDir: ".",
|
CacheDir: ".",
|
||||||
}
|
}
|
||||||
|
|
||||||
c := client.New(cfg)
|
c := client.New(cfg)
|
||||||
|
|
||||||
// 注册变更回调
|
// 注册变更回调
|
||||||
c.OnChange(func(changed map[string]string) {
|
c.OnChange(func (changed map[string]string) {
|
||||||
for k, v := range changed {
|
for k, v := range changed {
|
||||||
fmt.Printf("%s = %s\n", k, v)
|
fmt.Printf("%s = %s\n", k, v)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
// 启动(拉取全量配置 + 开启定时同步)
|
// 启动(拉取全量配置 + 开启定时同步)
|
||||||
@@ -136,6 +135,7 @@ dbHost := c.Get("db.host")
|
|||||||
**1. 引入依赖**
|
**1. 引入依赖**
|
||||||
|
|
||||||
```xml
|
```xml
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>cn.odboy</groupId>
|
<groupId>cn.odboy</groupId>
|
||||||
<artifactId>kenaito-conf-springboot2-client</artifactId>
|
<artifactId>kenaito-conf-springboot2-client</artifactId>
|
||||||
@@ -157,6 +157,7 @@ kenaito.config.sync-interval-seconds=30
|
|||||||
**3. 使用配置**
|
**3. 使用配置**
|
||||||
|
|
||||||
```java
|
```java
|
||||||
|
|
||||||
@Value("${your.config.key}")
|
@Value("${your.config.key}")
|
||||||
private String configValue;
|
private String configValue;
|
||||||
```
|
```
|
||||||
@@ -170,6 +171,7 @@ private String configValue;
|
|||||||
**1. 引入依赖**
|
**1. 引入依赖**
|
||||||
|
|
||||||
```xml
|
```xml
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>cn.odboy</groupId>
|
<groupId>cn.odboy</groupId>
|
||||||
<artifactId>kenaito-conf-springboot3-client</artifactId>
|
<artifactId>kenaito-conf-springboot3-client</artifactId>
|
||||||
@@ -206,11 +208,13 @@ config = Config(
|
|||||||
|
|
||||||
client = ConfigClient(config)
|
client = ConfigClient(config)
|
||||||
|
|
||||||
|
|
||||||
# 监听配置变更
|
# 监听配置变更
|
||||||
def on_change(changed):
|
def on_change(changed):
|
||||||
for k, v in changed.items():
|
for k, v in changed.items():
|
||||||
print(f"config changed: {k} = {v}")
|
print(f"config changed: {k} = {v}")
|
||||||
|
|
||||||
|
|
||||||
client.on_change(on_change)
|
client.on_change(on_change)
|
||||||
|
|
||||||
# 启动客户端(拉取配置 + 开启定时同步)
|
# 启动客户端(拉取配置 + 开启定时同步)
|
||||||
@@ -244,22 +248,22 @@ npm link kenaito-conf
|
|||||||
**2. 使用**
|
**2. 使用**
|
||||||
|
|
||||||
```javascript
|
```javascript
|
||||||
import { Config, ConfigClient } from 'kenaito-conf';
|
import {Config, ConfigClient} from 'kenaito-conf';
|
||||||
|
|
||||||
const config = new Config({
|
const config = new Config({
|
||||||
baseUrl: 'http://localhost:8080',
|
baseUrl: 'http://localhost:8080',
|
||||||
appName: 'my-app',
|
appName: 'my-app',
|
||||||
env: 'daily',
|
env: 'daily',
|
||||||
syncInterval: 30,
|
syncInterval: 30,
|
||||||
});
|
});
|
||||||
|
|
||||||
const client = new ConfigClient(config);
|
const client = new ConfigClient(config);
|
||||||
|
|
||||||
// 监听配置变更
|
// 监听配置变更
|
||||||
client.onChange((changed) => {
|
client.onChange((changed) => {
|
||||||
for (const [k, v] of Object.entries(changed)) {
|
for (const [k, v] of Object.entries(changed)) {
|
||||||
console.log(`config changed: ${k} = ${v}`);
|
console.log(`config changed: ${k} = ${v}`);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
// 启动客户端(拉取配置 + 开启定时同步)
|
// 启动客户端(拉取配置 + 开启定时同步)
|
||||||
@@ -317,7 +321,8 @@ $all = $client->getAll();
|
|||||||
**1. 引入依赖**
|
**1. 引入依赖**
|
||||||
|
|
||||||
```xml
|
```xml
|
||||||
<ProjectReference Include="..\kenaito-conf-dotnet-client\KenaitoConf.csproj" />
|
|
||||||
|
<ProjectReference Include="..\kenaito-conf-dotnet-client\KenaitoConf.csproj"/>
|
||||||
```
|
```
|
||||||
|
|
||||||
**2. 使用**
|
**2. 使用**
|
||||||
@@ -495,63 +500,54 @@ value = client.get('database.host')
|
|||||||
|
|
||||||
### 管理端 API(需 JWT 认证)
|
### 管理端 API(需 JWT 认证)
|
||||||
|
|
||||||
| 方法 | 路径 | 说明 |
|
| 方法 | 路径 | 说明 |
|
||||||
|------|------|------|
|
|------|-------------------------------------|--------------------------|
|
||||||
| POST | `/user/login` | 登录 |
|
| POST | `/user/login` | 登录 |
|
||||||
| GET | `/user/loginUserInfo` | 当前用户信息 |
|
| GET | `/user/loginUserInfo` | 当前用户信息 |
|
||||||
| POST | `/user/logout` | 登出 |
|
| POST | `/user/logout` | 登出 |
|
||||||
| GET | `/admin/menus` | 菜单 |
|
| GET | `/admin/menus` | 菜单 |
|
||||||
| POST | `/admin/config/list` | 配置列表 |
|
| POST | `/admin/config/list` | 配置列表(支持按环境、应用筛选) |
|
||||||
| POST | `/admin/config/add` | 新增配置 |
|
| POST | `/admin/config/add` | 新增配置 |
|
||||||
| POST | `/admin/config/update` | 更新配置 |
|
| POST | `/admin/config/update` | 更新配置 |
|
||||||
| GET | `/admin/config/:id` | 配置详情 |
|
| GET | `/admin/config/:id` | 配置详情 |
|
||||||
| POST | `/admin/config/delete/:id` | 删除配置 |
|
| POST | `/admin/config/delete/:id` | 删除配置 |
|
||||||
| GET | `/admin/config/configHistories/:id` | 配置历史 |
|
| GET | `/admin/config/configHistories/:id` | 配置历史 |
|
||||||
| POST | `/admin/config/rollback/:id` | 回滚配置 |
|
| POST | `/admin/config/rollback/:id` | 回滚配置 |
|
||||||
| POST | `/admin/app/list` | 应用列表 |
|
| POST | `/admin/app/list` | 应用列表(分页) |
|
||||||
| POST | `/admin/app/add` | 新增应用 |
|
| GET | `/admin/app/:id` | 应用详情 |
|
||||||
| POST | `/admin/app/update` | 更新应用 |
|
| POST | `/admin/app/add` | 新增应用 |
|
||||||
| POST | `/admin/app/delete/:id` | 删除应用 |
|
| POST | `/admin/app/update` | 更新应用 |
|
||||||
| POST | `/admin/app/switch/:id` | 切换应用状态 |
|
| POST | `/admin/app/delete/:id` | 删除应用(软删除) |
|
||||||
| GET | `/admin/app/tree` | 应用树 |
|
| POST | `/admin/app/switch/:id` | 切换应用状态 |
|
||||||
| GET | `/admin/app/options` | 应用选项 |
|
| POST | `/admin/app/generateToken/:id` | 生成应用 Token |
|
||||||
| GET | `/admin/user/list` | 用户列表 |
|
| POST | `/admin/app/deleteToken/:id` | 删除应用 Token |
|
||||||
| POST | `/admin/user/add` | 新增用户 |
|
| GET | `/admin/app/options` | 应用选项(下拉框) |
|
||||||
| POST | `/admin/user/update` | 更新用户 |
|
| GET | `/admin/user/list` | 用户列表(支持按用户名、类型、所属组、状态筛选) |
|
||||||
| POST | `/admin/user/delete/:id` | 删除用户 |
|
| POST | `/admin/user/add` | 新增用户 |
|
||||||
| POST | `/admin/user/resetPassword/:id` | 重置密码 |
|
| POST | `/admin/user/update` | 更新用户 |
|
||||||
| POST | `/admin/user/switch/:id` | 切换用户状态 |
|
| POST | `/admin/user/delete/:id` | 删除用户(软删除) |
|
||||||
| GET | `/admin/group/list` | 业务组列表 |
|
| POST | `/admin/user/resetPassword/:id` | 重置密码 |
|
||||||
| POST | `/admin/group/add` | 新增业务组 |
|
| POST | `/admin/user/switch/:id` | 切换用户状态 |
|
||||||
| POST | `/admin/group/update` | 更新业务组 |
|
| GET | `/admin/user/options` | 用户选项(下拉框) |
|
||||||
| GET | `/admin/group/options` | 业务组选项 |
|
| GET | `/admin/group/list` | 业务组列表 |
|
||||||
| GET | `/admin/profile/list` | 环境列表 |
|
| GET | `/admin/group/get/:id` | 业务组详情 |
|
||||||
| POST | `/admin/profile/add` | 新增环境 |
|
| POST | `/admin/group/add` | 新增业务组 |
|
||||||
| POST | `/admin/profile/update` | 更新环境 |
|
| POST | `/admin/group/update` | 更新业务组 |
|
||||||
| POST | `/admin/profile/delete/:id` | 删除环境 |
|
| POST | `/admin/group/switch/:id` | 切换业务组状态 |
|
||||||
| POST | `/admin/profile/switch/:id` | 切换环境状态 |
|
| GET | `/admin/group/options` | 业务组选项(下拉框) |
|
||||||
| GET | `/admin/profile/options` | 环境选项 |
|
| GET | `/admin/profile/list` | 环境列表 |
|
||||||
|
| GET | `/admin/profile/:id` | 环境详情 |
|
||||||
|
| POST | `/admin/profile/add` | 新增环境 |
|
||||||
|
| POST | `/admin/profile/update` | 更新环境 |
|
||||||
|
| POST | `/admin/profile/delete/:id` | 删除环境 |
|
||||||
|
| POST | `/admin/profile/switch/:id` | 切换环境状态 |
|
||||||
|
| GET | `/admin/profile/options` | 环境选项(下拉框) |
|
||||||
|
|
||||||
### 客户端 API(无需 JWT)
|
### 客户端 API(无需 JWT,通过应用 Token 鉴权)
|
||||||
|
|
||||||
| 方法 | 路径 | 说明 |
|
| 方法 | 路径 | 说明 |
|
||||||
|------|------|------|
|
|------|----------------------------|--------|
|
||||||
| GET | `/api/fetchAllConfigs` | 全量拉取配置 |
|
| POST | `/api/fetchAllConfigs` | 全量拉取配置 |
|
||||||
| POST | `/api/fetchChangedConfigs` | 增量拉取变更 |
|
| POST | `/api/fetchChangedConfigs` | 增量拉取变更 |
|
||||||
| GET | `/api/ping` | 健康检查 |
|
| GET | `/api/ping` | 健康检查 |
|
||||||
|
|
||||||
## 加密说明
|
|
||||||
|
|
||||||
配置值支持 AES 加密存储(`{Cipher}xxx` 格式),客户端自动解密:
|
|
||||||
|
|
||||||
- **算法**: AES-128/CBC/ZeroIV + PKCS7 填充
|
|
||||||
- **密钥派生**: `MD5(secretKey + appId_hex + env)` 取后 16 字节
|
|
||||||
- Go 客户端和 Java 客户端使用相同的加密方案,确保跨语言兼容
|
|
||||||
|
|
||||||
## 与原 Java 版的差异
|
|
||||||
|
|
||||||
- **去掉了 ZooKeeper**:配置变更通知改为客户端定时轮询
|
|
||||||
- **认证方式**:管理端用 JWT,客户端 API 通过 Token 鉴权
|
|
||||||
- **前端**:从 layui 静态页面改为 Vue 2 + Element UI 前后端分离
|
|
||||||
- **加密算法**:保持 AES 兼容,Java 客户端可继续使用
|
|
||||||
- **自动建表**:服务端启动时通过 xorm Sync2 自动创建表结构,无需手动执行 SQL
|
|
||||||
|
|||||||
Reference in New Issue
Block a user