Files

738 lines
14 KiB
Markdown
Raw Permalink Normal View History

2025-11-18 03:36:49 +08:00
# AdminService
> 管理员服务
---
## checkAdminExists
> 检查管理员是否存在
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/AdminService/checkAdminExists`
- RPC`rpc checkAdminExists (CheckAdminExistsRequest) returns (CheckAdminExistsResponse);`
**请求对象 (`CheckAdminExistsRequest`)**
```json
{
"adminId": "int64 // 管理员ID"
}
```
**响应对象 (`CheckAdminExistsResponse`)**
```json
{
"isOk": "bool",
"message": "string"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/AdminService/checkAdminExists" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## checkAdminOTPWithUsername
> 根据用户名检查是否需要输入OTP
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/AdminService/checkAdminOTPWithUsername`
- RPC`rpc checkAdminOTPWithUsername (CheckAdminOTPWithUsernameRequest) returns (CheckAdminOTPWithUsernameResponse);`
**请求对象 (`CheckAdminOTPWithUsernameRequest`)**
```json
{
"username": "string"
}
```
**响应对象 (`CheckAdminOTPWithUsernameResponse`)**
```json
{
"requireOTP": "bool"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/AdminService/checkAdminOTPWithUsername" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## checkAdminUsername
> 检查管理员用户名是否存在
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/AdminService/checkAdminUsername`
- RPC`rpc checkAdminUsername (CheckAdminUsernameRequest) returns (CheckAdminUsernameResponse);`
**请求对象 (`CheckAdminUsernameRequest`)**
```json
{
"adminId": "int64 // 管理员ID",
"username": "string"
}
```
**响应对象 (`CheckAdminUsernameResponse`)**
```json
{
"exists": "bool"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/AdminService/checkAdminUsername" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## composeAdminDashboard
> 取得管理员Dashboard数据
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/AdminService/composeAdminDashboard`
- RPC`rpc composeAdminDashboard (ComposeAdminDashboardRequest) returns (ComposeAdminDashboardResponse);`
**请求对象 (`ComposeAdminDashboardRequest`)**
```json
{
"apiVersion": "string // 当前API版本号"
}
```
**响应对象 (`ComposeAdminDashboardResponse`)**
```json
{
"countNodeClusters": "int64",
"countNodes": "int64 // 节点数",
"countOfflineNodes": "int64",
"countServers": "int64",
"countAuditingServers": "int64",
"countUsers": "int64",
"countAPINodes": "int64",
"countOfflineAPINodes": "int64",
"countDBNodes": "int64",
"countOfflineDBNodes": "int64",
"countUserNodes": "int64",
"countOfflineUserNodes": "int64",
"defaultNodeClusterId": "int64",
"dailyTrafficStats": "[]DailyTrafficStat",
"hourlyTrafficStats": "[]HourlyTrafficStat",
"nodeUpgradeInfo": "UpgradeInfo",
"apiNodeUpgradeInfo": "UpgradeInfo",
"userNodeUpgradeInfo": "UpgradeInfo",
"authorityNodeUpgradeInfo": "UpgradeInfo",
"nsNodeUpgradeInfo": "UpgradeInfo",
"reportNodeUpgradeInfo": "UpgradeInfo",
"topNodeStats": "[]NodeStat",
"topDomainStats": "[]DomainStat",
"topCountryStats": "[]CountryStat",
"metricDataCharts": "[]MetricDataChart",
"day": "string // 日期 YYYYMMDD",
"bytes": "int64",
"cachedBytes": "int64",
"countRequests": "int64",
"countCachedRequests": "int64",
"countAttackRequests": "int64",
"attackBytes": "int64",
"countIPs": "int64 // 独立IP数量",
"hour": "string",
"nodeId": "int64 // 节点ID",
"nodeName": "string",
"serverId": "int64 // 服务ID网站ID",
"domain": "string",
"countryName": "string",
"percent": "float // 流量占比",
"newVersion": "string // 新版本"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/AdminService/composeAdminDashboard" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## countAllEnabledAdmins
> 计算管理员数量
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/AdminService/countAllEnabledAdmins`
- RPC`rpc countAllEnabledAdmins (CountAllEnabledAdminsRequest) returns (RPCCountResponse);`
**请求对象 (`CountAllEnabledAdminsRequest`)**
```json
{
"keyword": "string // 可选项,查询关键词",
"hasWeakPassword": "bool // 可选项,筛选有弱密码的管理员,只有超级管理员才能查询"
}
```
**响应对象 (`RPCCountResponse`)**
```json
{
"count": "int64 // 数量"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/AdminService/countAllEnabledAdmins" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## createAdmin
> 创建管理员
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/AdminService/createAdmin`
- RPC`rpc createAdmin (CreateAdminRequest) returns (CreateAdminResponse);`
**请求对象 (`CreateAdminRequest`)**
```json
{
"username": "string",
"password": "string",
"fullname": "string",
"modulesJSON": "bytes",
"isSuper": "bool",
"canLogin": "bool"
}
```
**响应对象 (`CreateAdminResponse`)**
```json
{
"adminId": "int64 // 管理员ID"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/AdminService/createAdmin" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## createOrUpdateAdmin
> 创建或修改管理员
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/AdminService/createOrUpdateAdmin`
- RPC`rpc createOrUpdateAdmin (CreateOrUpdateAdminRequest) returns (CreateOrUpdateAdminResponse);`
**请求对象 (`CreateOrUpdateAdminRequest`)**
```json
{
"username": "string",
"password": "string"
}
```
**响应对象 (`CreateOrUpdateAdminResponse`)**
```json
{
"adminId": "int64 // 管理员ID"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/AdminService/createOrUpdateAdmin" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## deleteAdmin
> 删除管理员
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/AdminService/deleteAdmin`
- RPC`rpc deleteAdmin (DeleteAdminRequest) returns (RPCSuccess);`
**请求对象 (`DeleteAdminRequest`)**
```json
{
"adminId": "int64 // 管理员ID"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/AdminService/deleteAdmin" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findAdminFullname
> 获取管理员名称
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/AdminService/findAdminFullname`
- RPC`rpc findAdminFullname (FindAdminFullnameRequest) returns (FindAdminFullnameResponse);`
**请求对象 (`FindAdminFullnameRequest`)**
```json
{
"adminId": "int64 // 管理员ID"
}
```
**响应对象 (`FindAdminFullnameResponse`)**
```json
{
"fullname": "string"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/AdminService/findAdminFullname" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findAdminWithUsername
> 使用用管理员户名查找管理员信息
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/AdminService/findAdminWithUsername`
- RPC`rpc findAdminWithUsername(FindAdminWithUsernameRequest) returns (FindAdminWithUsernameResponse);`
**请求对象 (`FindAdminWithUsernameRequest`)**
```json
{
"username": "string // 管理员用户名"
}
```
**响应对象 (`FindAdminWithUsernameResponse`)**
```json
{
"admin": "Admin // 管理员信息"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/AdminService/findAdminWithUsername" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findAllAdminModules
> 获取所有管理员的权限列表
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/AdminService/findAllAdminModules`
- RPC`rpc findAllAdminModules (FindAllAdminModulesRequest) returns (FindAllAdminModulesResponse);`
**请求对象 (`FindAllAdminModulesRequest`)**
```json
{}
```
**响应对象 (`FindAllAdminModulesResponse`)**
```json
{
"adminModules": "[]AdminModuleList"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/AdminService/findAllAdminModules" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findEnabledAdmin
> 获取管理员信息
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/AdminService/findEnabledAdmin`
- RPC`rpc findEnabledAdmin (FindEnabledAdminRequest) returns (FindEnabledAdminResponse);`
**请求对象 (`FindEnabledAdminRequest`)**
```json
{
"adminId": "int64 // 管理员ID"
}
```
**响应对象 (`FindEnabledAdminResponse`)**
```json
{
"admin": "Admin"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/AdminService/findEnabledAdmin" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## getUserLoginToken
> 获取用户登录令牌
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/AdminService/getUserLoginToken`
- RPC`rpc getUserLoginToken(getUserLoginTokenRequest) returns (getUserLoginTokenResponse);`
**请求对象 (`getUserLoginTokenRequest`)**
```json
{
"userId": "int64 // 用户ID"
}
```
**响应对象 (`getUserLoginTokenResponse`)**
```json
{
"token": "string"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/AdminService/getUserLoginToken" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## listEnabledAdmins
> 列出单页的管理员
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/AdminService/listEnabledAdmins`
- RPC`rpc listEnabledAdmins (ListEnabledAdminsRequest) returns (ListEnabledAdminsResponse);`
**请求对象 (`ListEnabledAdminsRequest`)**
```json
{
"keyword": "string // 可选项,查询关键词",
"hasWeakPassword": "bool // 可选项,筛选有弱密码的管理员,只有超级管理员才能查询",
"offset": "int64 // 读取位置从0开始",
"size": "int64 // 读取数量"
}
```
**响应对象 (`ListEnabledAdminsResponse`)**
```json
{
"admins": "[]Admin"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/AdminService/listEnabledAdmins" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## updateAdmin
> 修改管理员
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/AdminService/updateAdmin`
- RPC`rpc updateAdmin (UpdateAdminRequest) returns (RPCSuccess);`
**请求对象 (`UpdateAdminRequest`)**
```json
{
"adminId": "int64 // 管理员ID",
"username": "string",
"password": "string",
"fullname": "string",
"modulesJSON": "bytes",
"isSuper": "bool",
"isOn": "bool // 是否启用",
"canLogin": "bool"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/AdminService/updateAdmin" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## updateAdminInfo
> 修改管理员信息
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/AdminService/updateAdminInfo`
- RPC`rpc updateAdminInfo (UpdateAdminInfoRequest) returns (RPCSuccess);`
**请求对象 (`UpdateAdminInfoRequest`)**
```json
{
"adminId": "int64 // 管理员ID",
"fullname": "string"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/AdminService/updateAdminInfo" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## updateAdminLang
> 修改管理员使用的语言
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/AdminService/updateAdminLang`
- RPC`rpc updateAdminLang(UpdateAdminLangRequest) returns (RPCSuccess);`
**请求对象 (`UpdateAdminLangRequest`)**
```json
{
"langCode": "string // 语言代号en-us, zh-cn, ...,如果为空表示默认"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/AdminService/updateAdminLang" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## updateAdminLogin
> 修改管理员登录信息
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/AdminService/updateAdminLogin`
- RPC`rpc updateAdminLogin (UpdateAdminLoginRequest) returns (RPCSuccess);`
**请求对象 (`UpdateAdminLoginRequest`)**
```json
{
"adminId": "int64 // 管理员ID",
"username": "string",
"password": "string"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/AdminService/updateAdminLogin" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## updateAdminTheme
> 修改管理员使用的界面风格
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/AdminService/updateAdminTheme`
- RPC`rpc updateAdminTheme (UpdateAdminThemeRequest) returns (RPCSuccess);`
**请求对象 (`UpdateAdminThemeRequest`)**
```json
{
"adminId": "int64 // 管理员ID",
"theme": "string // 风格代号"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/AdminService/updateAdminTheme" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---