Files
2025-11-18 03:36:49 +08:00

14 KiB
Raw Permalink Blame History

AdminService

管理员服务


checkAdminExists

检查管理员是否存在

  • 角色:admin
  • HTTPPOST https://backend.dooki.cloud/AdminService/checkAdminExists
  • RPCrpc checkAdminExists (CheckAdminExistsRequest) returns (CheckAdminExistsResponse);

请求对象 (CheckAdminExistsRequest)

{
  "adminId": "int64 // 管理员ID"
}

响应对象 (CheckAdminExistsResponse)

{
  "isOk": "bool",
  "message": "string"
}

调用示例

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
  • HTTPPOST https://backend.dooki.cloud/AdminService/checkAdminOTPWithUsername
  • RPCrpc checkAdminOTPWithUsername (CheckAdminOTPWithUsernameRequest) returns (CheckAdminOTPWithUsernameResponse);

请求对象 (CheckAdminOTPWithUsernameRequest)

{
  "username": "string"
}

响应对象 (CheckAdminOTPWithUsernameResponse)

{
  "requireOTP": "bool"
}

调用示例

curl -X POST "https://backend.dooki.cloud/AdminService/checkAdminOTPWithUsername" \
  -H "Content-Type: application/json" \
  -H "X-Edge-Access-Token: <YOUR_TOKEN>" \
  -d '{
    ...
  }'

checkAdminUsername

检查管理员用户名是否存在

  • 角色:admin
  • HTTPPOST https://backend.dooki.cloud/AdminService/checkAdminUsername
  • RPCrpc checkAdminUsername (CheckAdminUsernameRequest) returns (CheckAdminUsernameResponse);

请求对象 (CheckAdminUsernameRequest)

{
  "adminId": "int64 // 管理员ID",
  "username": "string"
}

响应对象 (CheckAdminUsernameResponse)

{
  "exists": "bool"
}

调用示例

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
  • HTTPPOST https://backend.dooki.cloud/AdminService/composeAdminDashboard
  • RPCrpc composeAdminDashboard (ComposeAdminDashboardRequest) returns (ComposeAdminDashboardResponse);

请求对象 (ComposeAdminDashboardRequest)

{
  "apiVersion": "string // 当前API版本号"
}

响应对象 (ComposeAdminDashboardResponse)

{
  "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 // 新版本"
}

调用示例

curl -X POST "https://backend.dooki.cloud/AdminService/composeAdminDashboard" \
  -H "Content-Type: application/json" \
  -H "X-Edge-Access-Token: <YOUR_TOKEN>" \
  -d '{
    ...
  }'

countAllEnabledAdmins

计算管理员数量

  • 角色:admin
  • HTTPPOST https://backend.dooki.cloud/AdminService/countAllEnabledAdmins
  • RPCrpc countAllEnabledAdmins (CountAllEnabledAdminsRequest) returns (RPCCountResponse);

请求对象 (CountAllEnabledAdminsRequest)

{
  "keyword": "string // 可选项,查询关键词",
  "hasWeakPassword": "bool // 可选项,筛选有弱密码的管理员,只有超级管理员才能查询"
}

响应对象 (RPCCountResponse)

{
  "count": "int64 // 数量"
}

调用示例

curl -X POST "https://backend.dooki.cloud/AdminService/countAllEnabledAdmins" \
  -H "Content-Type: application/json" \
  -H "X-Edge-Access-Token: <YOUR_TOKEN>" \
  -d '{
    ...
  }'

createAdmin

创建管理员

  • 角色:admin
  • HTTPPOST https://backend.dooki.cloud/AdminService/createAdmin
  • RPCrpc createAdmin (CreateAdminRequest) returns (CreateAdminResponse);

请求对象 (CreateAdminRequest)

{
  "username": "string",
  "password": "string",
  "fullname": "string",
  "modulesJSON": "bytes",
  "isSuper": "bool",
  "canLogin": "bool"
}

响应对象 (CreateAdminResponse)

{
  "adminId": "int64 // 管理员ID"
}

调用示例

curl -X POST "https://backend.dooki.cloud/AdminService/createAdmin" \
  -H "Content-Type: application/json" \
  -H "X-Edge-Access-Token: <YOUR_TOKEN>" \
  -d '{
    ...
  }'

createOrUpdateAdmin

创建或修改管理员

  • 角色:admin
  • HTTPPOST https://backend.dooki.cloud/AdminService/createOrUpdateAdmin
  • RPCrpc createOrUpdateAdmin (CreateOrUpdateAdminRequest) returns (CreateOrUpdateAdminResponse);

请求对象 (CreateOrUpdateAdminRequest)

{
  "username": "string",
  "password": "string"
}

响应对象 (CreateOrUpdateAdminResponse)

{
  "adminId": "int64 // 管理员ID"
}

调用示例

curl -X POST "https://backend.dooki.cloud/AdminService/createOrUpdateAdmin" \
  -H "Content-Type: application/json" \
  -H "X-Edge-Access-Token: <YOUR_TOKEN>" \
  -d '{
    ...
  }'

deleteAdmin

删除管理员

  • 角色:admin
  • HTTPPOST https://backend.dooki.cloud/AdminService/deleteAdmin
  • RPCrpc deleteAdmin (DeleteAdminRequest) returns (RPCSuccess);

请求对象 (DeleteAdminRequest)

{
  "adminId": "int64 // 管理员ID"
}

响应对象 (RPCSuccess)

{}

调用示例

curl -X POST "https://backend.dooki.cloud/AdminService/deleteAdmin" \
  -H "Content-Type: application/json" \
  -H "X-Edge-Access-Token: <YOUR_TOKEN>" \
  -d '{
    ...
  }'

findAdminFullname

获取管理员名称

  • 角色:admin
  • HTTPPOST https://backend.dooki.cloud/AdminService/findAdminFullname
  • RPCrpc findAdminFullname (FindAdminFullnameRequest) returns (FindAdminFullnameResponse);

请求对象 (FindAdminFullnameRequest)

{
  "adminId": "int64 // 管理员ID"
}

响应对象 (FindAdminFullnameResponse)

{
  "fullname": "string"
}

调用示例

curl -X POST "https://backend.dooki.cloud/AdminService/findAdminFullname" \
  -H "Content-Type: application/json" \
  -H "X-Edge-Access-Token: <YOUR_TOKEN>" \
  -d '{
    ...
  }'

findAdminWithUsername

使用用管理员户名查找管理员信息

  • 角色:admin
  • HTTPPOST https://backend.dooki.cloud/AdminService/findAdminWithUsername
  • RPCrpc findAdminWithUsername(FindAdminWithUsernameRequest) returns (FindAdminWithUsernameResponse);

请求对象 (FindAdminWithUsernameRequest)

{
  "username": "string // 管理员用户名"
}

响应对象 (FindAdminWithUsernameResponse)

{
  "admin": "Admin // 管理员信息"
}

调用示例

curl -X POST "https://backend.dooki.cloud/AdminService/findAdminWithUsername" \
  -H "Content-Type: application/json" \
  -H "X-Edge-Access-Token: <YOUR_TOKEN>" \
  -d '{
    ...
  }'

findAllAdminModules

获取所有管理员的权限列表

  • 角色:admin
  • HTTPPOST https://backend.dooki.cloud/AdminService/findAllAdminModules
  • RPCrpc findAllAdminModules (FindAllAdminModulesRequest) returns (FindAllAdminModulesResponse);

请求对象 (FindAllAdminModulesRequest)

{}

响应对象 (FindAllAdminModulesResponse)

{
  "adminModules": "[]AdminModuleList"
}

调用示例

curl -X POST "https://backend.dooki.cloud/AdminService/findAllAdminModules" \
  -H "Content-Type: application/json" \
  -H "X-Edge-Access-Token: <YOUR_TOKEN>" \
  -d '{
    ...
  }'

findEnabledAdmin

获取管理员信息

  • 角色:admin
  • HTTPPOST https://backend.dooki.cloud/AdminService/findEnabledAdmin
  • RPCrpc findEnabledAdmin (FindEnabledAdminRequest) returns (FindEnabledAdminResponse);

请求对象 (FindEnabledAdminRequest)

{
  "adminId": "int64 // 管理员ID"
}

响应对象 (FindEnabledAdminResponse)

{
  "admin": "Admin"
}

调用示例

curl -X POST "https://backend.dooki.cloud/AdminService/findEnabledAdmin" \
  -H "Content-Type: application/json" \
  -H "X-Edge-Access-Token: <YOUR_TOKEN>" \
  -d '{
    ...
  }'

getUserLoginToken

获取用户登录令牌

  • 角色:admin
  • HTTPPOST https://backend.dooki.cloud/AdminService/getUserLoginToken
  • RPCrpc getUserLoginToken(getUserLoginTokenRequest) returns (getUserLoginTokenResponse);

请求对象 (getUserLoginTokenRequest)

{
  "userId": "int64 // 用户ID"
}

响应对象 (getUserLoginTokenResponse)

{
  "token": "string"
}

调用示例

curl -X POST "https://backend.dooki.cloud/AdminService/getUserLoginToken" \
  -H "Content-Type: application/json" \
  -H "X-Edge-Access-Token: <YOUR_TOKEN>" \
  -d '{
    ...
  }'

listEnabledAdmins

列出单页的管理员

  • 角色:admin
  • HTTPPOST https://backend.dooki.cloud/AdminService/listEnabledAdmins
  • RPCrpc listEnabledAdmins (ListEnabledAdminsRequest) returns (ListEnabledAdminsResponse);

请求对象 (ListEnabledAdminsRequest)

{
  "keyword": "string // 可选项,查询关键词",
  "hasWeakPassword": "bool // 可选项,筛选有弱密码的管理员,只有超级管理员才能查询",
  "offset": "int64 // 读取位置从0开始",
  "size": "int64 // 读取数量"
}

响应对象 (ListEnabledAdminsResponse)

{
  "admins": "[]Admin"
}

调用示例

curl -X POST "https://backend.dooki.cloud/AdminService/listEnabledAdmins" \
  -H "Content-Type: application/json" \
  -H "X-Edge-Access-Token: <YOUR_TOKEN>" \
  -d '{
    ...
  }'

updateAdmin

修改管理员

  • 角色:admin
  • HTTPPOST https://backend.dooki.cloud/AdminService/updateAdmin
  • RPCrpc updateAdmin (UpdateAdminRequest) returns (RPCSuccess);

请求对象 (UpdateAdminRequest)

{
  "adminId": "int64 // 管理员ID",
  "username": "string",
  "password": "string",
  "fullname": "string",
  "modulesJSON": "bytes",
  "isSuper": "bool",
  "isOn": "bool // 是否启用",
  "canLogin": "bool"
}

响应对象 (RPCSuccess)

{}

调用示例

curl -X POST "https://backend.dooki.cloud/AdminService/updateAdmin" \
  -H "Content-Type: application/json" \
  -H "X-Edge-Access-Token: <YOUR_TOKEN>" \
  -d '{
    ...
  }'

updateAdminInfo

修改管理员信息

  • 角色:admin
  • HTTPPOST https://backend.dooki.cloud/AdminService/updateAdminInfo
  • RPCrpc updateAdminInfo (UpdateAdminInfoRequest) returns (RPCSuccess);

请求对象 (UpdateAdminInfoRequest)

{
  "adminId": "int64 // 管理员ID",
  "fullname": "string"
}

响应对象 (RPCSuccess)

{}

调用示例

curl -X POST "https://backend.dooki.cloud/AdminService/updateAdminInfo" \
  -H "Content-Type: application/json" \
  -H "X-Edge-Access-Token: <YOUR_TOKEN>" \
  -d '{
    ...
  }'

updateAdminLang

修改管理员使用的语言

  • 角色:admin
  • HTTPPOST https://backend.dooki.cloud/AdminService/updateAdminLang
  • RPCrpc updateAdminLang(UpdateAdminLangRequest) returns (RPCSuccess);

请求对象 (UpdateAdminLangRequest)

{
  "langCode": "string // 语言代号en-us, zh-cn, ...,如果为空表示默认"
}

响应对象 (RPCSuccess)

{}

调用示例

curl -X POST "https://backend.dooki.cloud/AdminService/updateAdminLang" \
  -H "Content-Type: application/json" \
  -H "X-Edge-Access-Token: <YOUR_TOKEN>" \
  -d '{
    ...
  }'

updateAdminLogin

修改管理员登录信息

  • 角色:admin
  • HTTPPOST https://backend.dooki.cloud/AdminService/updateAdminLogin
  • RPCrpc updateAdminLogin (UpdateAdminLoginRequest) returns (RPCSuccess);

请求对象 (UpdateAdminLoginRequest)

{
  "adminId": "int64 // 管理员ID",
  "username": "string",
  "password": "string"
}

响应对象 (RPCSuccess)

{}

调用示例

curl -X POST "https://backend.dooki.cloud/AdminService/updateAdminLogin" \
  -H "Content-Type: application/json" \
  -H "X-Edge-Access-Token: <YOUR_TOKEN>" \
  -d '{
    ...
  }'

updateAdminTheme

修改管理员使用的界面风格

  • 角色:admin
  • HTTPPOST https://backend.dooki.cloud/AdminService/updateAdminTheme
  • RPCrpc updateAdminTheme (UpdateAdminThemeRequest) returns (RPCSuccess);

请求对象 (UpdateAdminThemeRequest)

{
  "adminId": "int64 // 管理员ID",
  "theme": "string // 风格代号"
}

响应对象 (RPCSuccess)

{}

调用示例

curl -X POST "https://backend.dooki.cloud/AdminService/updateAdminTheme" \
  -H "Content-Type: application/json" \
  -H "X-Edge-Access-Token: <YOUR_TOKEN>" \
  -d '{
    ...
  }'