Initial commit

This commit is contained in:
2025-11-18 03:36:49 +08:00
commit d17c7efb3c
7078 changed files with 831480 additions and 0 deletions

View File

@@ -0,0 +1,257 @@
# ACMEProviderAccountService
> ACME服务商账号
---
## countAllEnabledACMEProviderAccounts
> 计算所有服务商账号数量
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/ACMEProviderAccountService/countAllEnabledACMEProviderAccounts`
- RPC`rpc countAllEnabledACMEProviderAccounts(CountAllEnabledACMEProviderAccountsRequest) returns (RPCCountResponse);`
**请求对象 (`CountAllEnabledACMEProviderAccountsRequest`)**
```json
{}
```
**响应对象 (`RPCCountResponse`)**
```json
{
"count": "int64 // 数量"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/ACMEProviderAccountService/countAllEnabledACMEProviderAccounts" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## createACMEProviderAccount
> 创建服务商账号
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/ACMEProviderAccountService/createACMEProviderAccount`
- RPC`rpc createACMEProviderAccount(CreateACMEProviderAccountRequest) returns (CreateACMEProviderAccountResponse);`
**请求对象 (`CreateACMEProviderAccountRequest`)**
```json
{
"name": "string // 名称",
"providerCode": "string",
"eabKid": "string",
"eabKey": "string"
}
```
**响应对象 (`CreateACMEProviderAccountResponse`)**
```json
{
"acmeProviderAccountId": "int64"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/ACMEProviderAccountService/createACMEProviderAccount" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## deleteACMEProviderAccount
> 删除服务商账号
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/ACMEProviderAccountService/deleteACMEProviderAccount`
- RPC`rpc deleteACMEProviderAccount(DeleteACMEProviderAccountRequest) returns (RPCSuccess);`
**请求对象 (`DeleteACMEProviderAccountRequest`)**
```json
{
"acmeProviderAccountId": "int64"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/ACMEProviderAccountService/deleteACMEProviderAccount" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findAllACMEProviderAccountsWithProviderCode
> 使用代号查找服务商账号
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/ACMEProviderAccountService/findAllACMEProviderAccountsWithProviderCode`
- RPC`rpc findAllACMEProviderAccountsWithProviderCode(FindAllACMEProviderAccountsWithProviderCodeRequest) returns (FindAllACMEProviderAccountsWithProviderCodeResponse);`
**请求对象 (`FindAllACMEProviderAccountsWithProviderCodeRequest`)**
```json
{
"acmeProviderCode": "string"
}
```
**响应对象 (`FindAllACMEProviderAccountsWithProviderCodeResponse`)**
```json
{
"acmeProviderAccounts": "[]ACMEProviderAccount"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/ACMEProviderAccountService/findAllACMEProviderAccountsWithProviderCode" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findEnabledACMEProviderAccount
> 查找单个服务商账号
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/ACMEProviderAccountService/findEnabledACMEProviderAccount`
- RPC`rpc findEnabledACMEProviderAccount(FindEnabledACMEProviderAccountRequest) returns (FindEnabledACMEProviderAccountResponse);`
**请求对象 (`FindEnabledACMEProviderAccountRequest`)**
```json
{
"acmeProviderAccountId": "int64"
}
```
**响应对象 (`FindEnabledACMEProviderAccountResponse`)**
```json
{
"acmeProviderAccount": "ACMEProviderAccount"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/ACMEProviderAccountService/findEnabledACMEProviderAccount" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## listEnabledACMEProviderAccounts
> 列出单页服务商账号
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/ACMEProviderAccountService/listEnabledACMEProviderAccounts`
- RPC`rpc listEnabledACMEProviderAccounts(ListEnabledACMEProviderAccountsRequest) returns (ListEnabledACMEProviderAccountsResponse);`
**请求对象 (`ListEnabledACMEProviderAccountsRequest`)**
```json
{
"offset": "int64 // 读取位置",
"size": "int64 // 数量通常不能小于0"
}
```
**响应对象 (`ListEnabledACMEProviderAccountsResponse`)**
```json
{
"acmeProviderAccounts": "[]ACMEProviderAccount"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/ACMEProviderAccountService/listEnabledACMEProviderAccounts" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## updateACMEProviderAccount
> 修改服务商账号
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/ACMEProviderAccountService/updateACMEProviderAccount`
- RPC`rpc updateACMEProviderAccount(UpdateACMEProviderAccountRequest) returns (RPCSuccess);`
**请求对象 (`UpdateACMEProviderAccountRequest`)**
```json
{
"acmeProviderAccountId": "int64",
"name": "string // 名称",
"eabKid": "string",
"eabKey": "string"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/ACMEProviderAccountService/updateACMEProviderAccount" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---

View File

@@ -0,0 +1,74 @@
# ACMEProviderService
> ACME服务商
---
## findACMEProviderWithCode
> 根据代号查找服务商
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/ACMEProviderService/findACMEProviderWithCode`
- RPC`rpc findACMEProviderWithCode(FindACMEProviderWithCodeRequest) returns (FindACMEProviderWithCodeResponse);`
**请求对象 (`FindACMEProviderWithCodeRequest`)**
```json
{
"acmeProviderCode": "string"
}
```
**响应对象 (`FindACMEProviderWithCodeResponse`)**
```json
{
"acmeProvider": "ACMEProvider"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/ACMEProviderService/findACMEProviderWithCode" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findAllACMEProviders
> 查找所有的服务商
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/ACMEProviderService/findAllACMEProviders`
- RPC`rpc findAllACMEProviders(FindAllACMEProvidersRequest) returns (FindAllACMEProvidersResponse);`
**请求对象 (`FindAllACMEProvidersRequest`)**
```json
{}
```
**响应对象 (`FindAllACMEProvidersResponse`)**
```json
{
"acmeProviders": "[]ACMEProvider"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/ACMEProviderService/findAllACMEProviders" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---

View File

@@ -0,0 +1,390 @@
# ACMETaskService
> ACME任务相关服务
---
## countAllEnabledACMETasks
> 计算所有任务数量
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/ACMETaskService/countAllEnabledACMETasks`
- RPC`rpc countAllEnabledACMETasks (CountAllEnabledACMETasksRequest) returns (RPCCountResponse);`
**请求对象 (`CountAllEnabledACMETasksRequest`)**
```json
{
"adminId": "int64 // 管理员ID",
"userId": "int64 // 用户ID",
"isAvailable": "bool",
"isExpired": "bool",
"expiringDays": "int32",
"keyword": "string // 关键词",
"userOnly": "bool // 可选项,是否只列出用户上传的证书"
}
```
**响应对象 (`RPCCountResponse`)**
```json
{
"count": "int64 // 数量"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/ACMETaskService/countAllEnabledACMETasks" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## countAllEnabledACMETasksWithACMEUserId
> 计算某个ACME用户相关的任务数量
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/ACMETaskService/countAllEnabledACMETasksWithACMEUserId`
- RPC`rpc countAllEnabledACMETasksWithACMEUserId (CountAllEnabledACMETasksWithACMEUserIdRequest) returns (RPCCountResponse);`
**请求对象 (`CountAllEnabledACMETasksWithACMEUserIdRequest`)**
```json
{
"acmeUserId": "int64"
}
```
**响应对象 (`RPCCountResponse`)**
```json
{
"count": "int64 // 数量"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/ACMETaskService/countAllEnabledACMETasksWithACMEUserId" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## countEnabledACMETasksWithDNSProviderId
> 计算跟某个DNS服务商相关的任务数量
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/ACMETaskService/countEnabledACMETasksWithDNSProviderId`
- RPC`rpc countEnabledACMETasksWithDNSProviderId (CountEnabledACMETasksWithDNSProviderIdRequest) returns (RPCCountResponse);`
**请求对象 (`CountEnabledACMETasksWithDNSProviderIdRequest`)**
```json
{
"dnsProviderId": "int64"
}
```
**响应对象 (`RPCCountResponse`)**
```json
{
"count": "int64 // 数量"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/ACMETaskService/countEnabledACMETasksWithDNSProviderId" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## createACMETask
> 创建任务
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/ACMETaskService/createACMETask`
- RPC`rpc createACMETask (CreateACMETaskRequest) returns (CreateACMETaskResponse);`
**请求对象 (`CreateACMETaskRequest`)**
```json
{
"userId": "int64 // 平台用户ID只有管理员才有权限指定",
"acmeUserId": "int64",
"dnsProviderId": "int64",
"dnsDomain": "string",
"domains": "[]string",
"autoRenew": "bool",
"authType": "string",
"authURL": "string",
"async": "bool"
}
```
**响应对象 (`CreateACMETaskResponse`)**
```json
{
"acmeTaskId": "int64"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/ACMETaskService/createACMETask" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## deleteACMETask
> 删除任务
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/ACMETaskService/deleteACMETask`
- RPC`rpc deleteACMETask (DeleteACMETaskRequest) returns (RPCSuccess);`
**请求对象 (`DeleteACMETaskRequest`)**
```json
{
"acmeTaskId": "int64"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/ACMETaskService/deleteACMETask" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findACMETaskUser
> 查找任务所属用户
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/ACMETaskService/findACMETaskUser`
- RPC`rpc findACMETaskUser(FindACMETaskUserRequest) returns (FindACMETaskUserResponse);`
**请求对象 (`FindACMETaskUserRequest`)**
```json
{
"acmeTaskId": "int64 // 任务ID"
}
```
**响应对象 (`FindACMETaskUserResponse`)**
```json
{
"user": "User // 用户信息,只包含几个基本的信息"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/ACMETaskService/findACMETaskUser" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findEnabledACMETask
> 查找单个任务信息
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/ACMETaskService/findEnabledACMETask`
- RPC`rpc findEnabledACMETask (FindEnabledACMETaskRequest) returns (FindEnabledACMETaskResponse);`
**请求对象 (`FindEnabledACMETaskRequest`)**
```json
{
"acmeTaskId": "int64"
}
```
**响应对象 (`FindEnabledACMETaskResponse`)**
```json
{
"acmeTask": "ACMETask"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/ACMETaskService/findEnabledACMETask" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## listEnabledACMETasks
> 列出单页任务
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/ACMETaskService/listEnabledACMETasks`
- RPC`rpc listEnabledACMETasks (ListEnabledACMETasksRequest) returns (ListEnabledACMETasksResponse);`
**请求对象 (`ListEnabledACMETasksRequest`)**
```json
{
"adminId": "int64 // 管理员ID",
"userId": "int64 // 用户ID",
"offset": "int64 // 读取位置",
"size": "int64 // 数量通常不能小于0",
"isAvailable": "bool",
"isExpired": "bool",
"expiringDays": "int32",
"keyword": "string // 关键词",
"userOnly": "bool // 可选项,是否只列出用户上传的证书"
}
```
**响应对象 (`ListEnabledACMETasksResponse`)**
```json
{
"acmeTasks": "[]ACMETask"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/ACMETaskService/listEnabledACMETasks" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## runACMETask
> 运行某个任务
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/ACMETaskService/runACMETask`
- RPC`rpc runACMETask (RunACMETaskRequest) returns (RunACMETaskResponse);`
**请求对象 (`RunACMETaskRequest`)**
```json
{
"acmeTaskId": "int64"
}
```
**响应对象 (`RunACMETaskResponse`)**
```json
{
"isOk": "bool",
"error": "string",
"sslCertId": "int64"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/ACMETaskService/runACMETask" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## updateACMETask
> 修改任务
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/ACMETaskService/updateACMETask`
- RPC`rpc updateACMETask (UpdateACMETaskRequest) returns (RPCSuccess);`
**请求对象 (`UpdateACMETaskRequest`)**
```json
{
"acmeTaskId": "int64",
"acmeUserId": "int64",
"dnsProviderId": "int64",
"dnsDomain": "string",
"domains": "[]string",
"autoRenew": "bool",
"authURL": "string"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/ACMETaskService/updateACMETask" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---

View File

@@ -0,0 +1,264 @@
# ACMEUserService
> ACME用户相关服务
---
## countACMEUsers
> 计算用户数量
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/ACMEUserService/countACMEUsers`
- RPC`rpc countACMEUsers (CountAcmeUsersRequest) returns (RPCCountResponse);`
**请求对象 (`CountAcmeUsersRequest`)**
```json
{
"adminId": "int64 // 管理员ID",
"userId": "int64 // 用户ID",
"acmeProviderAccountId": "int64"
}
```
**响应对象 (`RPCCountResponse`)**
```json
{
"count": "int64 // 数量"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/ACMEUserService/countACMEUsers" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## createACMEUser
> 创建用户
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/ACMEUserService/createACMEUser`
- RPC`rpc createACMEUser (CreateACMEUserRequest) returns (CreateACMEUserResponse);`
**请求对象 (`CreateACMEUserRequest`)**
```json
{
"userId": "int64 // 所属用户,只有管理员才有权限指定",
"email": "string // 用户邮箱",
"description": "string // 用户描述",
"acmeProviderCode": "string // 服务商代号",
"acmeProviderAccountId": "int64 // 服务商帐号"
}
```
**响应对象 (`CreateACMEUserResponse`)**
```json
{
"acmeUserId": "int64"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/ACMEUserService/createACMEUser" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## deleteACMEUser
> 删除用户
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/ACMEUserService/deleteACMEUser`
- RPC`rpc deleteACMEUser (DeleteACMEUserRequest) returns (RPCSuccess);`
**请求对象 (`DeleteACMEUserRequest`)**
```json
{
"acmeUserId": "int64"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/ACMEUserService/deleteACMEUser" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findAllACMEUsers
> 查找所有用户
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/ACMEUserService/findAllACMEUsers`
- RPC`rpc findAllACMEUsers (FindAllACMEUsersRequest) returns (FindAllACMEUsersResponse);`
**请求对象 (`FindAllACMEUsersRequest`)**
```json
{
"adminId": "int64 // 管理员ID",
"userId": "int64 // 用户ID",
"acmeProviderCode": "string"
}
```
**响应对象 (`FindAllACMEUsersResponse`)**
```json
{
"acmeUsers": "[]ACMEUser"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/ACMEUserService/findAllACMEUsers" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findEnabledACMEUser
> 查找单个用户
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/ACMEUserService/findEnabledACMEUser`
- RPC`rpc findEnabledACMEUser (FindEnabledACMEUserRequest) returns (FindEnabledACMEUserResponse);`
**请求对象 (`FindEnabledACMEUserRequest`)**
```json
{
"acmeUserId": "int64"
}
```
**响应对象 (`FindEnabledACMEUserResponse`)**
```json
{
"acmeUser": "ACMEUser"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/ACMEUserService/findEnabledACMEUser" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## listACMEUsers
> 列出单页用户
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/ACMEUserService/listACMEUsers`
- RPC`rpc listACMEUsers (ListACMEUsersRequest) returns (ListACMEUsersResponse);`
**请求对象 (`ListACMEUsersRequest`)**
```json
{
"adminId": "int64 // 管理员ID",
"userId": "int64 // 用户ID",
"offset": "int64 // 读取位置",
"size": "int64 // 数量通常不能小于0"
}
```
**响应对象 (`ListACMEUsersResponse`)**
```json
{
"acmeUsers": "[]ACMEUser"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/ACMEUserService/listACMEUsers" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## updateACMEUser
> 修改用户
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/ACMEUserService/updateACMEUser`
- RPC`rpc updateACMEUser (UpdateACMEUserRequest) returns (RPCSuccess);`
**请求对象 (`UpdateACMEUserRequest`)**
```json
{
"acmeUserId": "int64",
"description": "string // 描述(备注)"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/ACMEUserService/updateACMEUser" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---

View File

@@ -0,0 +1,216 @@
# ADNetworkService
> 高防线路服务
---
## createADNetwork
> 创建线路
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/ADNetworkService/createADNetwork`
- RPC`rpc createADNetwork(CreateADNetworkRequest) returns (CreateADNetworkResponse);`
**请求对象 (`CreateADNetworkRequest`)**
```json
{
"name": "string // 名称",
"description": "string // 描述(备注)"
}
```
**响应对象 (`CreateADNetworkResponse`)**
```json
{
"adNetworkId": "int64"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/ADNetworkService/createADNetwork" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## deleteADNetwork
> 删除线路
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/ADNetworkService/deleteADNetwork`
- RPC`rpc deleteADNetwork(DeleteADNetworkRequest) returns (RPCSuccess);`
**请求对象 (`DeleteADNetworkRequest`)**
```json
{
"adNetworkId": "int64"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/ADNetworkService/deleteADNetwork" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findADNetwork
> 查找单个线路
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/ADNetworkService/findADNetwork`
- RPC`rpc findADNetwork(FindADNetworkRequest) returns (FindADNetworkResponse);`
**请求对象 (`FindADNetworkRequest`)**
```json
{
"adNetworkId": "int64"
}
```
**响应对象 (`FindADNetworkResponse`)**
```json
{
"adNetwork": "ADNetwork"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/ADNetworkService/findADNetwork" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findAllADNetworks
> 列出所有线路
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/ADNetworkService/findAllADNetworks`
- RPC`rpc findAllADNetworks(FindAllADNetworkRequest) returns (FindAllADNetworkResponse);`
**请求对象 (`FindAllADNetworkRequest`)**
```json
{}
```
**响应对象 (`FindAllADNetworkResponse`)**
```json
{
"adNetworks": "[]ADNetwork"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/ADNetworkService/findAllADNetworks" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findAllAvailableADNetworks
> 列出所有可用的线路
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/ADNetworkService/findAllAvailableADNetworks`
- RPC`rpc findAllAvailableADNetworks(FindAllAvailableADNetworksRequest) returns (FindAllAvailableADNetworksResponse);`
**请求对象 (`FindAllAvailableADNetworksRequest`)**
```json
{}
```
**响应对象 (`FindAllAvailableADNetworksResponse`)**
```json
{
"adNetworks": "[]ADNetwork"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/ADNetworkService/findAllAvailableADNetworks" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## updateADNetwork
> 修改线路
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/ADNetworkService/updateADNetwork`
- RPC`rpc updateADNetwork(UpdateADNetworkRequest) returns (RPCSuccess);`
**请求对象 (`UpdateADNetworkRequest`)**
```json
{
"adNetworkId": "int64",
"isOn": "bool // 是否启用",
"name": "string // 名称",
"description": "string // 描述(备注)"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/ADNetworkService/updateADNetwork" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---

View File

@@ -0,0 +1,303 @@
# ADPackageInstanceService
> 高防实例服务
---
## countADPackageInstances
> 计算实例数量
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/ADPackageInstanceService/countADPackageInstances`
- RPC`rpc countADPackageInstances(CountADPackageInstancesRequest) returns (RPCCountResponse);`
**请求对象 (`CountADPackageInstancesRequest`)**
```json
{
"adNetworkId": "int64 // 可选,线路",
"adPackageId": "int64 // 可选,如果不填则表示获取所有实例数量",
"userId": "int64 // 可选用户ID",
"ip": "string // 可选高防IP"
}
```
**响应对象 (`RPCCountResponse`)**
```json
{
"count": "int64 // 数量"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/ADPackageInstanceService/countADPackageInstances" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## countIdleADPackageInstances
> 计算可购的实例数量
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/ADPackageInstanceService/countIdleADPackageInstances`
- RPC`rpc countIdleADPackageInstances(CountIdleADPackageInstancesRequest) returns (RPCCountResponse);`
**请求对象 (`CountIdleADPackageInstancesRequest`)**
```json
{
"adPackageId": "int64"
}
```
**响应对象 (`RPCCountResponse`)**
```json
{
"count": "int64 // 数量"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/ADPackageInstanceService/countIdleADPackageInstances" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## createADPackageInstance
> 创建实例
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/ADPackageInstanceService/createADPackageInstance`
- RPC`rpc createADPackageInstance(CreateADPackageInstanceRequest) returns (CreateADPackageInstanceResponse);`
**请求对象 (`CreateADPackageInstanceRequest`)**
```json
{
"adPackageId": "int64",
"nodeClusterId": "int64 // 集群ID",
"nodeIds": "[]int64",
"ipAddresses": "[]string"
}
```
**响应对象 (`CreateADPackageInstanceResponse`)**
```json
{
"adPackageInstanceId": "int64"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/ADPackageInstanceService/createADPackageInstance" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## deleteADPackageInstance
> 删除实例
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/ADPackageInstanceService/deleteADPackageInstance`
- RPC`rpc deleteADPackageInstance(DeleteADPackageInstanceRequest) returns (RPCSuccess);`
**请求对象 (`DeleteADPackageInstanceRequest`)**
```json
{
"adPackageInstanceId": "int64"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/ADPackageInstanceService/deleteADPackageInstance" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findADPackageInstance
> 查找单个实例
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/ADPackageInstanceService/findADPackageInstance`
- RPC`rpc findADPackageInstance(FindADPackageInstanceRequest) returns (FindADPackageInstanceResponse);`
**请求对象 (`FindADPackageInstanceRequest`)**
```json
{
"adPackageInstanceId": "int64"
}
```
**响应对象 (`FindADPackageInstanceResponse`)**
```json
{
"adPackageInstance": "ADPackageInstance"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/ADPackageInstanceService/findADPackageInstance" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findAllADPackageInstances
> 列出单个高防产品所有实例
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/ADPackageInstanceService/findAllADPackageInstances`
- RPC`rpc findAllADPackageInstances(FindAllADPackageInstancesRequest) returns (FindAllADPackageInstancesResponse);`
**请求对象 (`FindAllADPackageInstancesRequest`)**
```json
{
"adPackageId": "int64"
}
```
**响应对象 (`FindAllADPackageInstancesResponse`)**
```json
{
"adPackageInstances": "[]ADPackageInstance"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/ADPackageInstanceService/findAllADPackageInstances" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## listADPackageInstances
> 列出单页实例
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/ADPackageInstanceService/listADPackageInstances`
- RPC`rpc listADPackageInstances(ListADPackageInstancesRequest) returns (ListADPackageInstancesResponse);`
**请求对象 (`ListADPackageInstancesRequest`)**
```json
{
"adNetworkId": "int64 // 可选,线路",
"adPackageId": "int64 // 可选,如果不填则表示获取所有实例数量",
"userId": "int64 // 可选用户ID",
"ip": "string // 可选高防IP",
"offset": "int64 // 读取位置",
"size": "int64 // 数量通常不能小于0"
}
```
**响应对象 (`ListADPackageInstancesResponse`)**
```json
{
"adPackageInstances": "[]ADPackageInstance"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/ADPackageInstanceService/listADPackageInstances" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## updateADPackageInstance
> 修改实例
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/ADPackageInstanceService/updateADPackageInstance`
- RPC`rpc updateADPackageInstance(UpdateADPackageInstanceRequest) returns (RPCSuccess);`
**请求对象 (`UpdateADPackageInstanceRequest`)**
```json
{
"adPackageInstanceId": "int64",
"nodeClusterId": "int64 // 集群ID",
"nodeIds": "[]int64",
"ipAddresses": "[]string",
"isOn": "bool // 是否启用"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/ADPackageInstanceService/updateADPackageInstance" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---

View File

@@ -0,0 +1,214 @@
# ADPackagePeriodService
> 高防实例有效期服务
---
## createADPackagePeriod
> 创建有效期
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/ADPackagePeriodService/createADPackagePeriod`
- RPC`rpc createADPackagePeriod(CreateADPackagePeriodRequest) returns (CreateADPackagePeriodResponse);`
**请求对象 (`CreateADPackagePeriodRequest`)**
```json
{
"count": "int32 // 数量",
"unit": "string // month | year"
}
```
**响应对象 (`CreateADPackagePeriodResponse`)**
```json
{
"adPackagePeriodId": "int64"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/ADPackagePeriodService/createADPackagePeriod" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## deleteADPackagePeriod
> 删除有效期
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/ADPackagePeriodService/deleteADPackagePeriod`
- RPC`rpc deleteADPackagePeriod(DeleteADPackagePeriodRequest) returns (RPCSuccess);`
**请求对象 (`DeleteADPackagePeriodRequest`)**
```json
{
"adPackagePeriodId": "int64"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/ADPackagePeriodService/deleteADPackagePeriod" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findADPackagePeriod
> 查找有效期
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/ADPackagePeriodService/findADPackagePeriod`
- RPC`rpc findADPackagePeriod(FindADPackagePeriodRequest) returns (FindADPackagePeriodResponse);`
**请求对象 (`FindADPackagePeriodRequest`)**
```json
{
"adPackagePeriodId": "int64"
}
```
**响应对象 (`FindADPackagePeriodResponse`)**
```json
{
"adPackagePeriod": "ADPackagePeriod"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/ADPackagePeriodService/findADPackagePeriod" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findAllADPackagePeriods
> 列出所有有效期
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/ADPackagePeriodService/findAllADPackagePeriods`
- RPC`rpc findAllADPackagePeriods(FindAllADPackagePeriodsRequest) returns (FindAllADPackagePeriodsResponse);`
**请求对象 (`FindAllADPackagePeriodsRequest`)**
```json
{}
```
**响应对象 (`FindAllADPackagePeriodsResponse`)**
```json
{
"adPackagePeriods": "[]ADPackagePeriod"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/ADPackagePeriodService/findAllADPackagePeriods" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findAllAvailableADPackagePeriods
> 列出所有可用有效期
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/ADPackagePeriodService/findAllAvailableADPackagePeriods`
- RPC`rpc findAllAvailableADPackagePeriods(FindAllAvailableADPackagePeriodsRequest) returns (FindAllAvailableADPackagePeriodsResponse);`
**请求对象 (`FindAllAvailableADPackagePeriodsRequest`)**
```json
{}
```
**响应对象 (`FindAllAvailableADPackagePeriodsResponse`)**
```json
{
"adPackagePeriods": "[]ADPackagePeriod"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/ADPackagePeriodService/findAllAvailableADPackagePeriods" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## updateADPackagePeriod
> 修改有效期
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/ADPackagePeriodService/updateADPackagePeriod`
- RPC`rpc updateADPackagePeriod(UpdateADPackagePeriodRequest) returns (RPCSuccess);`
**请求对象 (`UpdateADPackagePeriodRequest`)**
```json
{
"adPackagePeriodId": "int64",
"isOn": "bool // 是否启用"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/ADPackagePeriodService/updateADPackagePeriod" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---

View File

@@ -0,0 +1,185 @@
# ADPackagePriceService
> 高防产品价格服务
---
## countADPackagePrices
> 计算高防产品价格项数量
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/ADPackagePriceService/countADPackagePrices`
- RPC`rpc countADPackagePrices(CountADPackagePricesRequest) returns (RPCCountResponse);`
**请求对象 (`CountADPackagePricesRequest`)**
```json
{
"adPackageId": "int64"
}
```
**响应对象 (`RPCCountResponse`)**
```json
{
"count": "int64 // 数量"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/ADPackagePriceService/countADPackagePrices" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findADPackagePrice
> 获取单个高防产品具体价格
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/ADPackagePriceService/findADPackagePrice`
- RPC`rpc findADPackagePrice(FindADPackagePriceRequest) returns (FindADPackagePriceResponse);`
**请求对象 (`FindADPackagePriceRequest`)**
```json
{
"adPackageId": "int64",
"adPackagePeriodId": "int64",
"count": "int32 // 数量"
}
```
**响应对象 (`FindADPackagePriceResponse`)**
```json
{
"price": "double // 单价",
"amount": "double // 总价"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/ADPackagePriceService/findADPackagePrice" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findADPackagePrices
> 查找高防产品价格
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/ADPackagePriceService/findADPackagePrices`
- RPC`rpc findADPackagePrices(FindADPackagePricesRequest) returns (FindADPackagePricesResponse);`
**请求对象 (`FindADPackagePricesRequest`)**
```json
{
"adPackageId": "int64"
}
```
**响应对象 (`FindADPackagePricesResponse`)**
```json
{
"adPackagePrices": "[]ADPackagePrice"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/ADPackagePriceService/findADPackagePrices" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findAllADPackagePrices
> 查找所有高防产品价格
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/ADPackagePriceService/findAllADPackagePrices`
- RPC`rpc findAllADPackagePrices(FindAllADPackagePricesRequest) returns (FindAllADPackagePricesResponse);`
**请求对象 (`FindAllADPackagePricesRequest`)**
```json
{}
```
**响应对象 (`FindAllADPackagePricesResponse`)**
```json
{
"adPackagePrices": "[]ADPackagePrice"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/ADPackagePriceService/findAllADPackagePrices" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## updateADPackagePrice
> 设置高防产品价格
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/ADPackagePriceService/updateADPackagePrice`
- RPC`rpc updateADPackagePrice(UpdateADPackagePriceRequest) returns (RPCSuccess);`
**请求对象 (`UpdateADPackagePriceRequest`)**
```json
{
"adPackageId": "int64",
"adPackagePeriodId": "int64",
"price": "double"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/ADPackagePriceService/updateADPackagePrice" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---

View File

@@ -0,0 +1,296 @@
# ADPackageService
> 高防产品服务
---
## countADPackages
> 查询高防产品数量
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/ADPackageService/countADPackages`
- RPC`rpc countADPackages(CountADPackagesRequest) returns (RPCCountResponse);`
**请求对象 (`CountADPackagesRequest`)**
```json
{
"adNetworkId": "int64"
}
```
**响应对象 (`RPCCountResponse`)**
```json
{
"count": "int64 // 数量"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/ADPackageService/countADPackages" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## countAllIdleADPackages
> 查询可用的产品数量
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/ADPackageService/countAllIdleADPackages`
- RPC`rpc countAllIdleADPackages(CountAllIdleADPackages) returns (RPCCountResponse);`
**请求对象 (`CountAllIdleADPackages`)**
```json
{}
```
**响应对象 (`RPCCountResponse`)**
```json
{
"count": "int64 // 数量"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/ADPackageService/countAllIdleADPackages" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## createADPackage
> 创建高防产品
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/ADPackageService/createADPackage`
- RPC`rpc createADPackage(CreateADPackageRequest) returns (CreateADPackageResponse);`
**请求对象 (`CreateADPackageRequest`)**
```json
{
"adNetworkId": "int64",
"protectionBandwidthSize": "int32",
"protectionBandwidthUnit": "string",
"serverBandwidthSize": "int32",
"serverBandwidthUnit": "string"
}
```
**响应对象 (`CreateADPackageResponse`)**
```json
{
"adPackageId": "int64"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/ADPackageService/createADPackage" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## deleteADPackage
> 删除高防产品
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/ADPackageService/deleteADPackage`
- RPC`rpc deleteADPackage(DeleteADPackageRequest) returns (RPCSuccess);`
**请求对象 (`DeleteADPackageRequest`)**
```json
{
"adPackageId": "int64"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/ADPackageService/deleteADPackage" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findADPackage
> 查找单个高防产品
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/ADPackageService/findADPackage`
- RPC`rpc findADPackage(FindADPackageRequest) returns (FindADPackageResponse);`
**请求对象 (`FindADPackageRequest`)**
```json
{
"adPackageId": "int64"
}
```
**响应对象 (`FindADPackageResponse`)**
```json
{
"adPackage": "ADPackage"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/ADPackageService/findADPackage" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findAllIdleADPackages
> 列出所有可用的高防产品
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/ADPackageService/findAllIdleADPackages`
- RPC`rpc findAllIdleADPackages(FindAllIdleADPackagesRequest) returns (FindAllIdleADPackagesResponse);`
**请求对象 (`FindAllIdleADPackagesRequest`)**
```json
{}
```
**响应对象 (`FindAllIdleADPackagesResponse`)**
```json
{
"adPackages": "[]ADPackage"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/ADPackageService/findAllIdleADPackages" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## listADPackages
> 列出单页高防产品
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/ADPackageService/listADPackages`
- RPC`rpc listADPackages(ListADPackagesRequest) returns (ListADPackagesResponse);`
**请求对象 (`ListADPackagesRequest`)**
```json
{
"adNetworkId": "int64",
"offset": "int64 // 读取位置",
"size": "int64 // 数量通常不能小于0"
}
```
**响应对象 (`ListADPackagesResponse`)**
```json
{
"adPackages": "[]ADPackage"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/ADPackageService/listADPackages" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## updateADPackage
> 修改高防产品
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/ADPackageService/updateADPackage`
- RPC`rpc updateADPackage(UpdateADPackageRequest) returns (RPCSuccess);`
**请求对象 (`UpdateADPackageRequest`)**
```json
{
"adPackageId": "int64",
"isOn": "bool // 是否启用",
"adNetworkId": "int64",
"protectionBandwidthSize": "int32",
"protectionBandwidthUnit": "string",
"serverBandwidthSize": "int32",
"serverBandwidthUnit": "string"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/ADPackageService/updateADPackage" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---

View File

@@ -0,0 +1,76 @@
# APIMethodStatService
> API方法统计服务
---
## countAPIMethodStatsWithDay
> 检查是否有统计数据
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/APIMethodStatService/countAPIMethodStatsWithDay`
- RPC`rpc countAPIMethodStatsWithDay(CountAPIMethodStatsWithDayRequest) returns (RPCCountResponse);`
**请求对象 (`CountAPIMethodStatsWithDayRequest`)**
```json
{
"day": "string // YYYYMMDD"
}
```
**响应对象 (`RPCCountResponse`)**
```json
{
"count": "int64 // 数量"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/APIMethodStatService/countAPIMethodStatsWithDay" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findAPIMethodStatsWithDay
> 查找某天的统计
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/APIMethodStatService/findAPIMethodStatsWithDay`
- RPC`rpc findAPIMethodStatsWithDay(FindAPIMethodStatsWithDayRequest) returns (FindAPIMethodStatsWithDayResponse);`
**请求对象 (`FindAPIMethodStatsWithDayRequest`)**
```json
{
"day": "string // YYYYMMDD"
}
```
**响应对象 (`FindAPIMethodStatsWithDayResponse`)**
```json
{
"apiMethodStats": "[]APIMethodStat"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/APIMethodStatService/findAPIMethodStatsWithDay" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---

View File

@@ -0,0 +1,519 @@
# APINodeService
> API节点服务
---
## countAllEnabledAPINodes
> 计算API节点数量
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/APINodeService/countAllEnabledAPINodes`
- RPC`rpc countAllEnabledAPINodes (CountAllEnabledAPINodesRequest) returns (RPCCountResponse);`
**请求对象 (`CountAllEnabledAPINodesRequest`)**
```json
{}
```
**响应对象 (`RPCCountResponse`)**
```json
{
"count": "int64 // 数量"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/APINodeService/countAllEnabledAPINodes" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## countAllEnabledAPINodesWithSSLCertId
> 计算使用某个SSL证书的API节点数量
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/APINodeService/countAllEnabledAPINodesWithSSLCertId`
- RPC`rpc countAllEnabledAPINodesWithSSLCertId (CountAllEnabledAPINodesWithSSLCertIdRequest) returns (RPCCountResponse);`
**请求对象 (`CountAllEnabledAPINodesWithSSLCertIdRequest`)**
```json
{
"sslCertId": "int64"
}
```
**响应对象 (`RPCCountResponse`)**
```json
{
"count": "int64 // 数量"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/APINodeService/countAllEnabledAPINodesWithSSLCertId" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## countAllEnabledAndOnAPINodes
> 计算启用的API节点数量
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/APINodeService/countAllEnabledAndOnAPINodes`
- RPC`rpc countAllEnabledAndOnAPINodes (CountAllEnabledAndOnAPINodesRequest) returns (RPCCountResponse);`
**请求对象 (`CountAllEnabledAndOnAPINodesRequest`)**
```json
{}
```
**响应对象 (`RPCCountResponse`)**
```json
{
"count": "int64 // 数量"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/APINodeService/countAllEnabledAndOnAPINodes" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## createAPINode
> 创建API节点
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/APINodeService/createAPINode`
- RPC`rpc createAPINode (CreateAPINodeRequest) returns (CreateAPINodeResponse);`
**请求对象 (`CreateAPINodeRequest`)**
```json
{
"name": "string // API节点名称",
"description": "string // API节点描述",
"httpJSON": "bytes // 监听HTTP地址配置 json:http_protocol",
"httpsJSON": "bytes // 监听HTTPS地址配置 json:https_protocol",
"accessAddrsJSON": "bytes // 访问地址 json:network_address",
"isOn": "bool // 是否启用当前API节点",
"restIsOn": "bool // 是否启用API",
"restHTTPJSON": "bytes // API地址HTTP地址配置 json:http_protocol",
"restHTTPSJSON": "bytes // API地址HTTPS地址配置 json:https_protocol"
}
```
**响应对象 (`CreateAPINodeResponse`)**
```json
{
"apiNodeId": "int64"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/APINodeService/createAPINode" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## debugAPINode
> 修改调试模式状态
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/APINodeService/debugAPINode`
- RPC`rpc debugAPINode(DebugAPINodeRequest) returns (RPCSuccess);`
**请求对象 (`DebugAPINodeRequest`)**
```json
{
"debug": "bool"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/APINodeService/debugAPINode" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## deleteAPINode
> 删除API节点
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/APINodeService/deleteAPINode`
- RPC`rpc deleteAPINode (DeleteAPINodeRequest) returns (RPCSuccess);`
**请求对象 (`DeleteAPINodeRequest`)**
```json
{
"apiNodeId": "int64"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/APINodeService/deleteAPINode" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findAllEnabledAPINodes
> 列出所有可用API节点
- 角色:`dns`, `user`, `node`, `admin`
- HTTP`POST https://backend.dooki.cloud/APINodeService/findAllEnabledAPINodes`
- RPC`rpc findAllEnabledAPINodes (FindAllEnabledAPINodesRequest) returns (FindAllEnabledAPINodesResponse);`
**请求对象 (`FindAllEnabledAPINodesRequest`)**
```json
{}
```
**响应对象 (`FindAllEnabledAPINodesResponse`)**
```json
{
"apiNodes": "[]APINode"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/APINodeService/findAllEnabledAPINodes" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findCurrentAPINode
> 获取当前API节点的信息
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/APINodeService/findCurrentAPINode`
- RPC`rpc findCurrentAPINode(FindCurrentAPINodeRequest) returns (FindCurrentAPINodeResponse);`
**请求对象 (`FindCurrentAPINodeRequest`)**
```json
{}
```
**响应对象 (`FindCurrentAPINodeResponse`)**
```json
{
"apiNode": "APINode"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/APINodeService/findCurrentAPINode" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findEnabledAPINode
> 根据ID查找节点
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/APINodeService/findEnabledAPINode`
- RPC`rpc findEnabledAPINode (FindEnabledAPINodeRequest) returns (FindEnabledAPINodeResponse);`
**请求对象 (`FindEnabledAPINodeRequest`)**
```json
{
"apiNodeId": "int64"
}
```
**响应对象 (`FindEnabledAPINodeResponse`)**
```json
{
"apiNode": "APINode"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/APINodeService/findEnabledAPINode" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findLatestDeployFiles
> 查找已有节点安装文件信息
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/APINodeService/findLatestDeployFiles`
- RPC`rpc findLatestDeployFiles(FindLatestDeployFilesRequest) returns (FindLatestDeployFilesResponse);`
**请求对象 (`FindLatestDeployFilesRequest`)**
```json
{}
```
**响应对象 (`FindLatestDeployFilesResponse`)**
```json
{
"nodeDeployFiles": "[]DeployFile // 边缘节点",
"nsNodeDeployFiles": "[]DeployFile // NS节点",
"os": "string // 操作系统代号",
"arch": "string // 架构",
"version": "string // 版本号"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/APINodeService/findLatestDeployFiles" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## listEnabledAPINodes
> 列出单页的API节点
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/APINodeService/listEnabledAPINodes`
- RPC`rpc listEnabledAPINodes (ListEnabledAPINodesRequest) returns (ListEnabledAPINodesResponse);`
**请求对象 (`ListEnabledAPINodesRequest`)**
```json
{
"offset": "int64 // 读取位置",
"size": "int64 // 数量通常不能小于0"
}
```
**响应对象 (`ListEnabledAPINodesResponse`)**
```json
{
"apiNodes": "[]APINode"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/APINodeService/listEnabledAPINodes" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## updateAPINode
> 修改API节点
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/APINodeService/updateAPINode`
- RPC`rpc updateAPINode (UpdateAPINodeRequest) returns (RPCSuccess);`
**请求对象 (`UpdateAPINodeRequest`)**
```json
{
"apiNodeId": "int64 // API节点ID",
"name": "string // API节点名称",
"description": "string // API节点描述",
"httpJSON": "bytes // 监听HTTP地址配置 json:http_protocol",
"httpsJSON": "bytes // 监听HTTPS地址配置 json:https_protocol",
"accessAddrsJSON": "bytes // 访问地址 json:network_address",
"isOn": "bool // 是否启用当前API节点",
"restIsOn": "bool // 是否启用API",
"restHTTPJSON": "bytes // API地址HTTP地址配置 json:http_protocol",
"restHTTPSJSON": "bytes // API地址HTTPS地址配置 json:https_protocol",
"isPrimary": "bool // 是否为主要API节点日常任务主要运行在主要API节点上"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/APINodeService/updateAPINode" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## uploadAPINodeFile
> 上传新版API节点文件
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/APINodeService/uploadAPINodeFile`
- RPC`rpc uploadAPINodeFile(UploadAPINodeFileRequest) returns (UploadAPINodeFileResponse);`
**请求对象 (`UploadAPINodeFileRequest`)**
```json
{
"filename": "string // 文件名",
"sum": "string // 整个文件的SUM值",
"chunkData": "bytes // 片段数据",
"isFirstChunk": "bool // 是否为第一个片段",
"isLastChunk": "bool // 是否为最后一个片段"
}
```
**响应对象 (`UploadAPINodeFileResponse`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/APINodeService/uploadAPINodeFile" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## uploadDeployFileToAPINode
> 上传节点安装文件
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/APINodeService/uploadDeployFileToAPINode`
- RPC`rpc uploadDeployFileToAPINode(UploadDeployFileToAPINodeRequest) returns (RPCSuccess);`
**请求对象 (`UploadDeployFileToAPINodeRequest`)**
```json
{
"filename": "string // 文件名",
"sum": "string // 整个文件的SUM值",
"chunkData": "bytes // 片段数据",
"isFirstChunk": "bool // 是否为第一个片段",
"isLastChunk": "bool // 是否为最后一个片段"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/APINodeService/uploadDeployFileToAPINode" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---

View File

@@ -0,0 +1,737 @@
# 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 '{
...
}'
```
---

View File

@@ -0,0 +1,78 @@
# ClientAgentIPService
> Agent IP服务
---
## createClientAgentIPs
> 创建一组IP
- 角色:`dns`, `node`, `admin`
- HTTP`POST https://backend.dooki.cloud/ClientAgentIPService/createClientAgentIPs`
- RPC`rpc createClientAgentIPs(CreateClientAgentIPsRequest) returns (RPCSuccess);`
**请求对象 (`CreateClientAgentIPsRequest`)**
```json
{
"agentIPs": "[]AgentIPInfo",
"agentCode": "string",
"ip": "string",
"ptr": "string"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/ClientAgentIPService/createClientAgentIPs" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## listClientAgentIPsAfterId
> 查询最新的IP
- 角色:`dns`, `node`, `admin`
- HTTP`POST https://backend.dooki.cloud/ClientAgentIPService/listClientAgentIPsAfterId`
- RPC`rpc listClientAgentIPsAfterId(ListClientAgentIPsAfterIdRequest) returns (ListClientAgentIPsAfterIdResponse);`
**请求对象 (`ListClientAgentIPsAfterIdRequest`)**
```json
{
"id": "int64",
"size": "int64 // 数量通常不能小于0"
}
```
**响应对象 (`ListClientAgentIPsAfterIdResponse`)**
```json
{
"clientAgentIPs": "[]ClientAgentIP"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/ClientAgentIPService/listClientAgentIPsAfterId" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---

View File

@@ -0,0 +1,38 @@
# ClientAgentService
> Agent服务
---
## findAllClientAgents
> 查找所有Agent
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/ClientAgentService/findAllClientAgents`
- RPC`rpc findAllClientAgents(FindAllClientAgentsRequest) returns (FindAllClientAgentsResponse);`
**请求对象 (`FindAllClientAgentsRequest`)**
```json
{}
```
**响应对象 (`FindAllClientAgentsResponse`)**
```json
{
"clientAgents": "[]ClientAgent"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/ClientAgentService/findAllClientAgents" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---

View File

@@ -0,0 +1,376 @@
# DBNodeService
> 数据库节点服务
---
## checkDBNodeStatus
> 检查数据库节点状态
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/DBNodeService/checkDBNodeStatus`
- RPC`rpc checkDBNodeStatus(CheckDBNodeStatusRequest) returns (CheckDBNodeStatusResponse);`
**请求对象 (`CheckDBNodeStatusRequest`)**
```json
{
"dbNodeId": "int64"
}
```
**响应对象 (`CheckDBNodeStatusResponse`)**
```json
{
"dbNodeStatus": "DBNodeStatus"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/DBNodeService/checkDBNodeStatus" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## countAllEnabledDBNodes
> 计算可用的数据库节点数量
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/DBNodeService/countAllEnabledDBNodes`
- RPC`rpc countAllEnabledDBNodes (CountAllEnabledDBNodesRequest) returns (RPCCountResponse);`
**请求对象 (`CountAllEnabledDBNodesRequest`)**
```json
{}
```
**响应对象 (`RPCCountResponse`)**
```json
{
"count": "int64 // 数量"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/DBNodeService/countAllEnabledDBNodes" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## createDBNode
> 创建数据库节点
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/DBNodeService/createDBNode`
- RPC`rpc createDBNode (CreateDBNodeRequest) returns (CreateDBNodeResponse);`
**请求对象 (`CreateDBNodeRequest`)**
```json
{
"isOn": "bool // 是否启用",
"name": "string // 名称",
"description": "string // 描述(备注)",
"host": "string",
"port": "int32",
"database": "string",
"username": "string",
"password": "string",
"charset": "string",
"dbEngine": "string"
}
```
**响应对象 (`CreateDBNodeResponse`)**
```json
{
"dbNodeId": "int64"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/DBNodeService/createDBNode" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## deleteDBNode
> 删除节点
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/DBNodeService/deleteDBNode`
- RPC`rpc deleteDBNode (DeleteDBNodeRequest) returns (RPCSuccess);`
**请求对象 (`DeleteDBNodeRequest`)**
```json
{
"dbNodeId": "int64"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/DBNodeService/deleteDBNode" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## deleteDBNodeTable
> 删除表
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/DBNodeService/deleteDBNodeTable`
- RPC`rpc deleteDBNodeTable (DeleteDBNodeTableRequest) returns (RPCSuccess);`
**请求对象 (`DeleteDBNodeTableRequest`)**
```json
{
"dbNodeId": "int64",
"dbNodeTable": "string"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/DBNodeService/deleteDBNodeTable" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findAllDBNodeTables
> 获取所有表信息
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/DBNodeService/findAllDBNodeTables`
- RPC`rpc findAllDBNodeTables (FindAllDBNodeTablesRequest) returns (FindAllDBNodeTablesResponse);`
**请求对象 (`FindAllDBNodeTablesRequest`)**
```json
{
"dbNodeId": "int64"
}
```
**响应对象 (`FindAllDBNodeTablesResponse`)**
```json
{
"dbNodeTables": "[]DBTable"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/DBNodeService/findAllDBNodeTables" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findEnabledDBNode
> 根据ID查找可用的数据库节点
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/DBNodeService/findEnabledDBNode`
- RPC`rpc findEnabledDBNode (FindEnabledDBNodeRequest) returns (FindEnabledDBNodeResponse);`
**请求对象 (`FindEnabledDBNodeRequest`)**
```json
{
"dbNodeId": "int64"
}
```
**响应对象 (`FindEnabledDBNodeResponse`)**
```json
{
"dbNode": "DBNode"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/DBNodeService/findEnabledDBNode" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## listEnabledDBNodes
> 列出单页的数据库节点
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/DBNodeService/listEnabledDBNodes`
- RPC`rpc listEnabledDBNodes (ListEnabledDBNodesRequest) returns (ListEnabledDBNodesResponse);`
**请求对象 (`ListEnabledDBNodesRequest`)**
```json
{
"offset": "int64 // 读取位置",
"size": "int64 // 数量通常不能小于0"
}
```
**响应对象 (`ListEnabledDBNodesResponse`)**
```json
{
"dbNodes": "[]DBNode"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/DBNodeService/listEnabledDBNodes" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## truncateDBNodeTable
> 清空表
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/DBNodeService/truncateDBNodeTable`
- RPC`rpc truncateDBNodeTable (TruncateDBNodeTableRequest) returns (RPCSuccess);`
**请求对象 (`TruncateDBNodeTableRequest`)**
```json
{
"dbNodeId": "int64",
"dbNodeTable": "string"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/DBNodeService/truncateDBNodeTable" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## updateDBNode
> 修改数据库节点
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/DBNodeService/updateDBNode`
- RPC`rpc updateDBNode (UpdateDBNodeRequest) returns (RPCSuccess);`
**请求对象 (`UpdateDBNodeRequest`)**
```json
{
"dbNodeId": "int64",
"name": "string // 名称",
"description": "string // 描述(备注)",
"isOn": "bool // 是否启用",
"host": "string",
"port": "int32",
"database": "string",
"username": "string",
"password": "string",
"charset": "string",
"dbEngine": "string"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/DBNodeService/updateDBNode" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---

View File

@@ -0,0 +1,106 @@
# DBService
> 数据库相关服务
---
## deleteDBTable
> 删除表
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/DBService/deleteDBTable`
- RPC`rpc deleteDBTable (DeleteDBTableRequest) returns (RPCSuccess);`
**请求对象 (`DeleteDBTableRequest`)**
```json
{
"dbTable": "string"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/DBService/deleteDBTable" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findAllDBTables
> 获取所有表信息
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/DBService/findAllDBTables`
- RPC`rpc findAllDBTables (FindAllDBTablesRequest) returns (FindAllDBTablesResponse);`
**请求对象 (`FindAllDBTablesRequest`)**
```json
{}
```
**响应对象 (`FindAllDBTablesResponse`)**
```json
{
"dbTables": "[]DBTable"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/DBService/findAllDBTables" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## truncateDBTable
> 清空表
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/DBService/truncateDBTable`
- RPC`rpc truncateDBTable (TruncateDBTableRequest) returns (RPCSuccess);`
**请求对象 (`TruncateDBTableRequest`)**
```json
{
"dbTable": "string"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/DBService/truncateDBTable" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---

View File

@@ -0,0 +1,553 @@
# DNSDomainService
> DNS域名相关
---
## countAllDNSDomainsWithDNSProviderId
> 计算服务商下的域名数量
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/DNSDomainService/countAllDNSDomainsWithDNSProviderId`
- RPC`rpc countAllDNSDomainsWithDNSProviderId (CountAllDNSDomainsWithDNSProviderIdRequest) returns (RPCCountResponse);`
**请求对象 (`CountAllDNSDomainsWithDNSProviderIdRequest`)**
```json
{
"dnsProviderId": "int64",
"isDeleted": "bool // 是否已删除",
"isDown": "bool"
}
```
**响应对象 (`RPCCountResponse`)**
```json
{
"count": "int64 // 数量"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/DNSDomainService/countAllDNSDomainsWithDNSProviderId" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## createDNSDomain
> 创建域名
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/DNSDomainService/createDNSDomain`
- RPC`rpc createDNSDomain (CreateDNSDomainRequest) returns (CreateDNSDomainResponse);`
**请求对象 (`CreateDNSDomainRequest`)**
```json
{
"dnsProviderId": "int64",
"name": "string // 名称"
}
```
**响应对象 (`CreateDNSDomainResponse`)**
```json
{
"dnsDomainId": "int64"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/DNSDomainService/createDNSDomain" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## deleteDNSDomain
> 删除域名
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/DNSDomainService/deleteDNSDomain`
- RPC`rpc deleteDNSDomain (DeleteDNSDomainRequest) returns (RPCSuccess);`
**请求对象 (`DeleteDNSDomainRequest`)**
```json
{
"dnsDomainId": "int64"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/DNSDomainService/deleteDNSDomain" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## existAvailableDomains
> 判断是否有域名可选
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/DNSDomainService/existAvailableDomains`
- RPC`rpc existAvailableDomains (ExistAvailableDomainsRequest) returns (ExistAvailableDomainsResponse);`
**请求对象 (`ExistAvailableDomainsRequest`)**
```json
{}
```
**响应对象 (`ExistAvailableDomainsResponse`)**
```json
{
"exist": "bool"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/DNSDomainService/existAvailableDomains" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## existDNSDomainRecord
> 检查域名是否在记录中
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/DNSDomainService/existDNSDomainRecord`
- RPC`rpc existDNSDomainRecord (ExistDNSDomainRecordRequest) returns (ExistDNSDomainRecordResponse);`
**请求对象 (`ExistDNSDomainRecordRequest`)**
```json
{
"dnsDomainId": "int64",
"name": "string // 名称",
"type": "string // 解析类型比如A, CNAME等",
"route": "string // 线路",
"value": "string // 值"
}
```
**响应对象 (`ExistDNSDomainRecordResponse`)**
```json
{
"isOk": "bool"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/DNSDomainService/existDNSDomainRecord" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findAllBasicDNSDomainsWithDNSProviderId
> 列出服务商下的所有域名基本信息
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/DNSDomainService/findAllBasicDNSDomainsWithDNSProviderId`
- RPC`rpc findAllBasicDNSDomainsWithDNSProviderId (FindAllBasicDNSDomainsWithDNSProviderIdRequest) returns (FindAllBasicDNSDomainsWithDNSProviderIdResponse);`
**请求对象 (`FindAllBasicDNSDomainsWithDNSProviderIdRequest`)**
```json
{
"dnsProviderId": "int64"
}
```
**响应对象 (`FindAllBasicDNSDomainsWithDNSProviderIdResponse`)**
```json
{
"dnsDomains": "[]DNSDomain"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/DNSDomainService/findAllBasicDNSDomainsWithDNSProviderId" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findAllDNSDomainRoutes
> 查看支持的线路
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/DNSDomainService/findAllDNSDomainRoutes`
- RPC`rpc findAllDNSDomainRoutes (FindAllDNSDomainRoutesRequest) returns (FindAllDNSDomainRoutesResponse);`
**请求对象 (`FindAllDNSDomainRoutesRequest`)**
```json
{
"dnsDomainId": "int64"
}
```
**响应对象 (`FindAllDNSDomainRoutesResponse`)**
```json
{
"routes": "[]DNSRoute"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/DNSDomainService/findAllDNSDomainRoutes" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findAllDNSDomainsWithDNSProviderId
> 列出服务商下的所有域名
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/DNSDomainService/findAllDNSDomainsWithDNSProviderId`
- RPC`rpc findAllDNSDomainsWithDNSProviderId (FindAllDNSDomainsWithDNSProviderIdRequest) returns (FindAllDNSDomainsWithDNSProviderIdResponse);`
**请求对象 (`FindAllDNSDomainsWithDNSProviderIdRequest`)**
```json
{
"dnsProviderId": "int64"
}
```
**响应对象 (`FindAllDNSDomainsWithDNSProviderIdResponse`)**
```json
{
"dnsDomains": "[]DNSDomain"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/DNSDomainService/findAllDNSDomainsWithDNSProviderId" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findBasicDNSDomain
> 查询单个域名基础信息
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/DNSDomainService/findBasicDNSDomain`
- RPC`rpc findBasicDNSDomain (FindBasicDNSDomainRequest) returns (FindBasicDNSDomainResponse);`
**请求对象 (`FindBasicDNSDomainRequest`)**
```json
{
"dnsDomainId": "int64"
}
```
**响应对象 (`FindBasicDNSDomainResponse`)**
```json
{
"dnsDomain": "DNSDomain"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/DNSDomainService/findBasicDNSDomain" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findDNSDomain
> 查询单个域名完整信息
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/DNSDomainService/findDNSDomain`
- RPC`rpc findDNSDomain (FindDNSDomainRequest) returns (FindDNSDomainResponse);`
**请求对象 (`FindDNSDomainRequest`)**
```json
{
"dnsDomainId": "int64"
}
```
**响应对象 (`FindDNSDomainResponse`)**
```json
{
"dnsDomain": "DNSDomain"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/DNSDomainService/findDNSDomain" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## listBasicDNSDomainsWithDNSProviderId
> 列出服务商下的单页域名信息
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/DNSDomainService/listBasicDNSDomainsWithDNSProviderId`
- RPC`rpc listBasicDNSDomainsWithDNSProviderId (ListBasicDNSDomainsWithDNSProviderIdRequest) returns (ListDNSDomainsWithDNSProviderIdResponse);`
**请求对象 (`ListBasicDNSDomainsWithDNSProviderIdRequest`)**
```json
{
"dnsProviderId": "int64",
"isDeleted": "bool // 是否已删除",
"isDown": "bool",
"offset": "int64 // 读取位置",
"size": "int64 // 数量通常不能小于0"
}
```
**响应对象 (`ListDNSDomainsWithDNSProviderIdResponse`)**
```json
{
"dnsDomains": "[]DNSDomain"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/DNSDomainService/listBasicDNSDomainsWithDNSProviderId" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## recoverDNSDomain
> 恢复删除的域名
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/DNSDomainService/recoverDNSDomain`
- RPC`rpc recoverDNSDomain (RecoverDNSDomainRequest) returns (RPCSuccess);`
**请求对象 (`RecoverDNSDomainRequest`)**
```json
{
"dnsDomainId": "int64"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/DNSDomainService/recoverDNSDomain" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## syncDNSDomainData
> 同步域名解析
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/DNSDomainService/syncDNSDomainData`
- RPC`rpc syncDNSDomainData (SyncDNSDomainDataRequest) returns (SyncDNSDomainDataResponse);`
**请求对象 (`SyncDNSDomainDataRequest`)**
```json
{
"dnsDomainId": "int64",
"nodeClusterId": "int64 // 如果指定表示只更新单个集群ID",
"checkNodeIssues": "bool // 是否检查节点问题"
}
```
**响应对象 (`SyncDNSDomainDataResponse`)**
```json
{
"isOk": "bool",
"error": "string",
"shouldFix": "bool"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/DNSDomainService/syncDNSDomainData" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## syncDNSDomainsFromProvider
> 从服务商同步域名
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/DNSDomainService/syncDNSDomainsFromProvider`
- RPC`rpc syncDNSDomainsFromProvider(SyncDNSDomainsFromProviderRequest) returns (SyncDNSDomainsFromProviderResponse);`
**请求对象 (`SyncDNSDomainsFromProviderRequest`)**
```json
{
"dnsProviderId": "int64"
}
```
**响应对象 (`SyncDNSDomainsFromProviderResponse`)**
```json
{
"hasChanges": "bool"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/DNSDomainService/syncDNSDomainsFromProvider" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## updateDNSDomain
> 修改域名
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/DNSDomainService/updateDNSDomain`
- RPC`rpc updateDNSDomain (UpdateDNSDomainRequest) returns (RPCSuccess);`
**请求对象 (`UpdateDNSDomainRequest`)**
```json
{
"dnsDomainId": "int64",
"name": "string // 名称",
"isOn": "bool // 是否启用"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/DNSDomainService/updateDNSDomain" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---

View File

@@ -0,0 +1,340 @@
# DNSProviderService
> DNS服务商相关服务
---
## countAllEnabledDNSProviders
> 计算服务商数量
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/DNSProviderService/countAllEnabledDNSProviders`
- RPC`rpc countAllEnabledDNSProviders (CountAllEnabledDNSProvidersRequest) returns (RPCCountResponse);`
**请求对象 (`CountAllEnabledDNSProvidersRequest`)**
```json
{
"adminId": "int64 // 管理员ID",
"userId": "int64 // 用户ID",
"keyword": "string // 关键词",
"domain": "string",
"type": "string"
}
```
**响应对象 (`RPCCountResponse`)**
```json
{
"count": "int64 // 数量"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/DNSProviderService/countAllEnabledDNSProviders" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## createDNSProvider
> 创建服务商
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/DNSProviderService/createDNSProvider`
- RPC`rpc createDNSProvider (CreateDNSProviderRequest) returns (CreateDNSProviderResponse);`
**请求对象 (`CreateDNSProviderRequest`)**
```json
{
"name": "string // 名称",
"type": "string",
"apiParamsJSON": "bytes",
"minTTL": "int32 // 最小TTL"
}
```
**响应对象 (`CreateDNSProviderResponse`)**
```json
{
"dnsProviderId": "int64"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/DNSProviderService/createDNSProvider" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## deleteDNSProvider
> 删除服务商
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/DNSProviderService/deleteDNSProvider`
- RPC`rpc deleteDNSProvider (DeleteDNSProviderRequest) returns (RPCSuccess);`
**请求对象 (`DeleteDNSProviderRequest`)**
```json
{
"dnsProviderId": "int64"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/DNSProviderService/deleteDNSProvider" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findAllDNSProviderTypes
> 取得所有服务商类型
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/DNSProviderService/findAllDNSProviderTypes`
- RPC`rpc findAllDNSProviderTypes (FindAllDNSProviderTypesRequest) returns (FindAllDNSProviderTypesResponse);`
**请求对象 (`FindAllDNSProviderTypesRequest`)**
```json
{}
```
**响应对象 (`FindAllDNSProviderTypesResponse`)**
```json
{
"providerTypes": "[]DNSProviderType"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/DNSProviderService/findAllDNSProviderTypes" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findAllEnabledDNSProviders
> 查找所有的DNS服务商
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/DNSProviderService/findAllEnabledDNSProviders`
- RPC`rpc findAllEnabledDNSProviders (FindAllEnabledDNSProvidersRequest) returns (FindAllEnabledDNSProvidersResponse);`
**请求对象 (`FindAllEnabledDNSProvidersRequest`)**
```json
{
"adminId": "int64 // 管理员ID",
"userId": "int64 // 用户ID"
}
```
**响应对象 (`FindAllEnabledDNSProvidersResponse`)**
```json
{
"dnsProviders": "[]DNSProvider"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/DNSProviderService/findAllEnabledDNSProviders" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findAllEnabledDNSProvidersWithType
> 取得某个类型的所有服务商
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/DNSProviderService/findAllEnabledDNSProvidersWithType`
- RPC`rpc findAllEnabledDNSProvidersWithType (FindAllEnabledDNSProvidersWithTypeRequest) returns (FindAllEnabledDNSProvidersWithTypeResponse);`
**请求对象 (`FindAllEnabledDNSProvidersWithTypeRequest`)**
```json
{
"providerTypeCode": "string"
}
```
**响应对象 (`FindAllEnabledDNSProvidersWithTypeResponse`)**
```json
{
"dnsProviders": "[]DNSProvider"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/DNSProviderService/findAllEnabledDNSProvidersWithType" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findEnabledDNSProvider
> 查找单个服务商
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/DNSProviderService/findEnabledDNSProvider`
- RPC`rpc findEnabledDNSProvider (FindEnabledDNSProviderRequest) returns (FindEnabledDNSProviderResponse);`
**请求对象 (`FindEnabledDNSProviderRequest`)**
```json
{
"dnsProviderId": "int64 // DNS服务商ID",
"maskParams": "bool // 是否对参数中的密钥进行掩码"
}
```
**响应对象 (`FindEnabledDNSProviderResponse`)**
```json
{
"dnsProvider": "DNSProvider // DNS服务商信息"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/DNSProviderService/findEnabledDNSProvider" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## listEnabledDNSProviders
> 列出单页服务商信息
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/DNSProviderService/listEnabledDNSProviders`
- RPC`rpc listEnabledDNSProviders (ListEnabledDNSProvidersRequest) returns (ListEnabledDNSProvidersResponse);`
**请求对象 (`ListEnabledDNSProvidersRequest`)**
```json
{
"adminId": "int64 // 管理员ID",
"userId": "int64 // 用户ID",
"keyword": "string // 关键词",
"domain": "string",
"type": "string",
"offset": "int64 // 读取位置",
"size": "int64 // 数量通常不能小于0"
}
```
**响应对象 (`ListEnabledDNSProvidersResponse`)**
```json
{
"dnsProviders": "[]DNSProvider"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/DNSProviderService/listEnabledDNSProviders" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## updateDNSProvider
> 修改服务商
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/DNSProviderService/updateDNSProvider`
- RPC`rpc updateDNSProvider (UpdateDNSProviderRequest) returns (RPCSuccess);`
**请求对象 (`UpdateDNSProviderRequest`)**
```json
{
"dnsProviderId": "int64",
"name": "string // 名称",
"apiParamsJSON": "bytes",
"minTTL": "int32 // 最小TTL"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/DNSProviderService/updateDNSProvider" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---

View File

@@ -0,0 +1,40 @@
# DNSService
> 域名解析服务
---
## findAllDNSIssues
> 查找问题
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/DNSService/findAllDNSIssues`
- RPC`rpc findAllDNSIssues (FindAllDNSIssuesRequest) returns (FindAllDNSIssuesResponse);`
**请求对象 (`FindAllDNSIssuesRequest`)**
```json
{
"nodeClusterId": "int64 // 集群ID"
}
```
**响应对象 (`FindAllDNSIssuesResponse`)**
```json
{
"issues": "[]DNSIssue"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/DNSService/findAllDNSIssues" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---

View File

@@ -0,0 +1,141 @@
# DNSTaskService
> DNS同步相关任务
---
## deleteAllDNSTasks
> 删除所有同步任务
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/DNSTaskService/deleteAllDNSTasks`
- RPC`rpc deleteAllDNSTasks(DeleteAllDNSTasksRequest) returns (RPCSuccess);`
**请求对象 (`DeleteAllDNSTasksRequest`)**
```json
{}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/DNSTaskService/deleteAllDNSTasks" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## deleteDNSTask
> 删除任务
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/DNSTaskService/deleteDNSTask`
- RPC`rpc deleteDNSTask (DeleteDNSTaskRequest) returns (RPCSuccess);`
**请求对象 (`DeleteDNSTaskRequest`)**
```json
{
"dnsTaskId": "int64"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/DNSTaskService/deleteDNSTask" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## existsDNSTasks
> 检查是否有正在执行的任务
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/DNSTaskService/existsDNSTasks`
- RPC`rpc existsDNSTasks (ExistsDNSTasksRequest) returns (ExistsDNSTasksResponse);`
**请求对象 (`ExistsDNSTasksRequest`)**
```json
{}
```
**响应对象 (`ExistsDNSTasksResponse`)**
```json
{
"existTasks": "bool",
"existError": "bool"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/DNSTaskService/existsDNSTasks" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findAllDoingDNSTasks
> 查找正在执行的所有任务
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/DNSTaskService/findAllDoingDNSTasks`
- RPC`rpc findAllDoingDNSTasks (FindAllDoingDNSTasksRequest) returns (FindAllDoingDNSTasksResponse);`
**请求对象 (`FindAllDoingDNSTasksRequest`)**
```json
{
"nodeClusterId": "int64 // 集群ID"
}
```
**响应对象 (`FindAllDoingDNSTasksResponse`)**
```json
{
"dnsTasks": "[]DNSTask"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/DNSTaskService/findAllDoingDNSTasks" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---

View File

@@ -0,0 +1,113 @@
# FileChunkService
> 文件片段相关服务
---
## createFileChunk
> 创建文件片段
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/FileChunkService/createFileChunk`
- RPC`rpc createFileChunk (CreateFileChunkRequest) returns (CreateFileChunkResponse);`
**请求对象 (`CreateFileChunkRequest`)**
```json
{
"fileId": "int64 // 文件ID",
"data": "bytes"
}
```
**响应对象 (`CreateFileChunkResponse`)**
```json
{
"fileChunkId": "int64"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/FileChunkService/createFileChunk" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## downloadFileChunk
> 下载文件片段
- 角色:`dns`, `user`, `node`, `admin`
- HTTP`POST https://backend.dooki.cloud/FileChunkService/downloadFileChunk`
- RPC`rpc downloadFileChunk (DownloadFileChunkRequest) returns (DownloadFileChunkResponse);`
**请求对象 (`DownloadFileChunkRequest`)**
```json
{
"fileChunkId": "int64"
}
```
**响应对象 (`DownloadFileChunkResponse`)**
```json
{
"fileChunk": "FileChunk"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/FileChunkService/downloadFileChunk" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findAllFileChunkIds
> 获取的一个文件的所有片段IDs
- 角色:`dns`, `user`, `node`, `admin`
- HTTP`POST https://backend.dooki.cloud/FileChunkService/findAllFileChunkIds`
- RPC`rpc findAllFileChunkIds (FindAllFileChunkIdsRequest) returns (FindAllFileChunkIdsResponse);`
**请求对象 (`FindAllFileChunkIdsRequest`)**
```json
{
"fileId": "int64 // 文件ID"
}
```
**响应对象 (`FindAllFileChunkIdsResponse`)**
```json
{
"fileChunkIds": "[]int64"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/FileChunkService/findAllFileChunkIds" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---

View File

@@ -0,0 +1,114 @@
# FileService
> 文件相关服务
---
## createFile
> 创建文件
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/FileService/createFile`
- RPC`rpc createFile (CreateFileRequest) returns (CreateFileResponse);`
**请求对象 (`CreateFileRequest`)**
```json
{
"filename": "string // 文件名",
"size": "int64 // 数量通常不能小于0",
"isPublic": "bool",
"mimeType": "string",
"type": "string"
}
```
**响应对象 (`CreateFileResponse`)**
```json
{
"fileId": "int64 // 文件ID"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/FileService/createFile" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findEnabledFile
> 查找文件
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/FileService/findEnabledFile`
- RPC`rpc findEnabledFile (FindEnabledFileRequest) returns (FindEnabledFileResponse);`
**请求对象 (`FindEnabledFileRequest`)**
```json
{
"fileId": "int64 // 文件ID"
}
```
**响应对象 (`FindEnabledFileResponse`)**
```json
{
"file": "File // 文件信息"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/FileService/findEnabledFile" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## updateFileFinished
> 将文件置为已完成
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/FileService/updateFileFinished`
- RPC`rpc updateFileFinished (UpdateFileFinishedRequest) returns (RPCSuccess);`
**请求对象 (`UpdateFileFinishedRequest`)**
```json
{
"fileId": "int64 // 文件ID"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/FileService/updateFileFinished" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---

View File

@@ -0,0 +1,98 @@
# FirewallService
> 防火墙全局服务
---
## composeFirewallGlobalBoard
> 组合看板数据
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/FirewallService/composeFirewallGlobalBoard`
- RPC`rpc composeFirewallGlobalBoard (ComposeFirewallGlobalBoardRequest) returns (ComposeFirewallGlobalBoardResponse);`
**请求对象 (`ComposeFirewallGlobalBoardRequest`)**
```json
{}
```
**响应对象 (`ComposeFirewallGlobalBoardResponse`)**
```json
{
"countDailyLogs": "int64",
"countDailyBlocks": "int64",
"countDailyCaptcha": "int64",
"countWeeklyBlocks": "int64",
"httpFirewallRuleGroups": "[]HTTPFirewallRuleGroupStat",
"dailyStats": "[]DailyStat",
"hourlyStats": "[]HourlyStat",
"topNodeStats": "[]NodeStat",
"topDomainStats": "[]DomainStat",
"topCountryStats": "[]CountryStat",
"httpFirewallRuleGroup": "HTTPFirewallRuleGroup",
"count": "int64 // 数量",
"hour": "string",
"countLogs": "int64",
"countCaptcha": "int64",
"countBlocks": "int64",
"day": "string",
"nodeId": "int64 // 节点ID",
"nodeName": "string",
"countRequests": "int64",
"bytes": "int64",
"countAttackRequests": "int64",
"attackBytes": "int64",
"serverId": "int64 // 服务ID网站ID",
"domain": "string",
"countryName": "string",
"percent": "float // 流量占比"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/FirewallService/composeFirewallGlobalBoard" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## countFirewallDailyBlocks
> 读取当前Block动作次数
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/FirewallService/countFirewallDailyBlocks`
- RPC`rpc countFirewallDailyBlocks(CountFirewallDailyBlocksRequest) returns (CountFirewallDailyBlocksResponse);`
**请求对象 (`CountFirewallDailyBlocksRequest`)**
```json
{}
```
**响应对象 (`CountFirewallDailyBlocksResponse`)**
```json
{
"countBlocks": "int64"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/FirewallService/countFirewallDailyBlocks" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---

View File

@@ -0,0 +1,189 @@
# FormalClientBrowserService
> 浏览器信息库服务
---
## countFormalClientBrowsers
> 计算浏览器信息数量
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/FormalClientBrowserService/countFormalClientBrowsers`
- RPC`rpc countFormalClientBrowsers(CountFormalClientBrowsersRequest) returns (RPCCountResponse);`
**请求对象 (`CountFormalClientBrowsersRequest`)**
```json
{
"keyword": "string // 可选"
}
```
**响应对象 (`RPCCountResponse`)**
```json
{
"count": "int64 // 数量"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/FormalClientBrowserService/countFormalClientBrowsers" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## createFormalClientBrowser
> 创建浏览器信息
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/FormalClientBrowserService/createFormalClientBrowser`
- RPC`rpc createFormalClientBrowser(CreateFormalClientBrowserRequest) returns (CreateFormalClientBrowserResponse);`
**请求对象 (`CreateFormalClientBrowserRequest`)**
```json
{
"name": "string // 名称",
"codes": "[]string",
"dataId": "string"
}
```
**响应对象 (`CreateFormalClientBrowserResponse`)**
```json
{
"formalClientBrowserId": "int64"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/FormalClientBrowserService/createFormalClientBrowser" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findFormalClientBrowserWithDataId
> 通过dataId查询浏览器信息
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/FormalClientBrowserService/findFormalClientBrowserWithDataId`
- RPC`rpc findFormalClientBrowserWithDataId(FindFormalClientBrowserWithDataIdRequest) returns (FindFormalClientBrowserWithDataIdResponse);`
**请求对象 (`FindFormalClientBrowserWithDataIdRequest`)**
```json
{
"dataId": "string"
}
```
**响应对象 (`FindFormalClientBrowserWithDataIdResponse`)**
```json
{
"formalClientBrowser": "FormalClientBrowser"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/FormalClientBrowserService/findFormalClientBrowserWithDataId" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## listFormalClientBrowsers
> 列出单页浏览器信息
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/FormalClientBrowserService/listFormalClientBrowsers`
- RPC`rpc listFormalClientBrowsers(ListFormalClientBrowsersRequest) returns (ListFormalClientBrowsersResponse);`
**请求对象 (`ListFormalClientBrowsersRequest`)**
```json
{
"keyword": "string // 可选",
"offset": "int64 // 读取位置",
"size": "int64 // 数量通常不能小于0"
}
```
**响应对象 (`ListFormalClientBrowsersResponse`)**
```json
{
"formalClientBrowsers": "[]FormalClientBrowser"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/FormalClientBrowserService/listFormalClientBrowsers" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## updateFormalClientBrowser
> 修改浏览器信息
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/FormalClientBrowserService/updateFormalClientBrowser`
- RPC`rpc updateFormalClientBrowser(UpdateFormalClientBrowserRequest) returns (RPCSuccess);`
**请求对象 (`UpdateFormalClientBrowserRequest`)**
```json
{
"formalClientBrowserId": "int64",
"name": "string // 名称",
"codes": "[]string",
"dataId": "string"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/FormalClientBrowserService/updateFormalClientBrowser" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---

View File

@@ -0,0 +1,189 @@
# FormalClientSystemService
> 操作系统信息库服务
---
## countFormalClientSystems
> 计算操作系统信息数量
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/FormalClientSystemService/countFormalClientSystems`
- RPC`rpc countFormalClientSystems(CountFormalClientSystemsRequest) returns (RPCCountResponse);`
**请求对象 (`CountFormalClientSystemsRequest`)**
```json
{
"keyword": "string // 可选"
}
```
**响应对象 (`RPCCountResponse`)**
```json
{
"count": "int64 // 数量"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/FormalClientSystemService/countFormalClientSystems" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## createFormalClientSystem
> 创建操作系统信息
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/FormalClientSystemService/createFormalClientSystem`
- RPC`rpc createFormalClientSystem(CreateFormalClientSystemRequest) returns (CreateFormalClientSystemResponse);`
**请求对象 (`CreateFormalClientSystemRequest`)**
```json
{
"name": "string // 名称",
"codes": "[]string",
"dataId": "string"
}
```
**响应对象 (`CreateFormalClientSystemResponse`)**
```json
{
"formalClientSystemId": "int64"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/FormalClientSystemService/createFormalClientSystem" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findFormalClientSystemWithDataId
> 通过dataId查询操作系统信息
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/FormalClientSystemService/findFormalClientSystemWithDataId`
- RPC`rpc findFormalClientSystemWithDataId(FindFormalClientSystemWithDataIdRequest) returns (FindFormalClientSystemWithDataIdResponse);`
**请求对象 (`FindFormalClientSystemWithDataIdRequest`)**
```json
{
"dataId": "string"
}
```
**响应对象 (`FindFormalClientSystemWithDataIdResponse`)**
```json
{
"formalClientSystem": "FormalClientSystem"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/FormalClientSystemService/findFormalClientSystemWithDataId" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## listFormalClientSystems
> 列出单页操作系统信息
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/FormalClientSystemService/listFormalClientSystems`
- RPC`rpc listFormalClientSystems(ListFormalClientSystemsRequest) returns (ListFormalClientSystemsResponse);`
**请求对象 (`ListFormalClientSystemsRequest`)**
```json
{
"keyword": "string // 可选",
"offset": "int64 // 读取位置",
"size": "int64 // 数量通常不能小于0"
}
```
**响应对象 (`ListFormalClientSystemsResponse`)**
```json
{
"formalClientSystems": "[]FormalClientSystem"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/FormalClientSystemService/listFormalClientSystems" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## updateFormalClientSystem
> 修改操作系统信息
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/FormalClientSystemService/updateFormalClientSystem`
- RPC`rpc updateFormalClientSystem(UpdateFormalClientSystemRequest) returns (RPCSuccess);`
**请求对象 (`UpdateFormalClientSystemRequest`)**
```json
{
"formalClientSystemId": "int64",
"name": "string // 名称",
"codes": "[]string",
"dataId": "string"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/FormalClientSystemService/updateFormalClientSystem" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---

View File

@@ -0,0 +1,263 @@
# HTTPAccessLogPolicyService
> 访问日志策略服务
---
## countAllHTTPAccessLogPolicies
> 计算访问日志策略数量
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/HTTPAccessLogPolicyService/countAllHTTPAccessLogPolicies`
- RPC`rpc countAllHTTPAccessLogPolicies (CountAllHTTPAccessLogPoliciesRequest) returns (RPCCountResponse);`
**请求对象 (`CountAllHTTPAccessLogPoliciesRequest`)**
```json
{}
```
**响应对象 (`RPCCountResponse`)**
```json
{
"count": "int64 // 数量"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/HTTPAccessLogPolicyService/countAllHTTPAccessLogPolicies" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## createHTTPAccessLogPolicy
> 创建访问日志策略
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/HTTPAccessLogPolicyService/createHTTPAccessLogPolicy`
- RPC`rpc createHTTPAccessLogPolicy (CreateHTTPAccessLogPolicyRequest) returns (CreateHTTPAccessLogPolicyResponse);`
**请求对象 (`CreateHTTPAccessLogPolicyRequest`)**
```json
{
"name": "string // 名称",
"type": "string",
"optionsJSON": "bytes",
"condsJSON": "bytes",
"isPublic": "bool",
"firewallOnly": "bool",
"disableDefaultDB": "bool"
}
```
**响应对象 (`CreateHTTPAccessLogPolicyResponse`)**
```json
{
"httpAccessLogPolicyId": "int64"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/HTTPAccessLogPolicyService/createHTTPAccessLogPolicy" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## deleteHTTPAccessLogPolicy
> 删除访问日志策略
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/HTTPAccessLogPolicyService/deleteHTTPAccessLogPolicy`
- RPC`rpc deleteHTTPAccessLogPolicy (DeleteHTTPAccessLogPolicyRequest) returns (RPCSuccess);`
**请求对象 (`DeleteHTTPAccessLogPolicyRequest`)**
```json
{
"httpAccessLogPolicyId": "int64"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/HTTPAccessLogPolicyService/deleteHTTPAccessLogPolicy" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findHTTPAccessLogPolicy
> 查找单个访问日志策略
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/HTTPAccessLogPolicyService/findHTTPAccessLogPolicy`
- RPC`rpc findHTTPAccessLogPolicy (FindHTTPAccessLogPolicyRequest) returns (FindHTTPAccessLogPolicyResponse);`
**请求对象 (`FindHTTPAccessLogPolicyRequest`)**
```json
{
"httpAccessLogPolicyId": "int64"
}
```
**响应对象 (`FindHTTPAccessLogPolicyResponse`)**
```json
{
"httpAccessLogPolicy": "HTTPAccessLogPolicy"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/HTTPAccessLogPolicyService/findHTTPAccessLogPolicy" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## listHTTPAccessLogPolicies
> 列出单页访问日志策略
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/HTTPAccessLogPolicyService/listHTTPAccessLogPolicies`
- RPC`rpc listHTTPAccessLogPolicies (ListHTTPAccessLogPoliciesRequest) returns (ListHTTPAccessLogPoliciesResponse);`
**请求对象 (`ListHTTPAccessLogPoliciesRequest`)**
```json
{
"offset": "int64 // 读取位置",
"size": "int64 // 数量通常不能小于0"
}
```
**响应对象 (`ListHTTPAccessLogPoliciesResponse`)**
```json
{
"httpAccessLogPolicies": "[]HTTPAccessLogPolicy"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/HTTPAccessLogPolicyService/listHTTPAccessLogPolicies" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## updateHTTPAccessLogPolicy
> 修改访问日志策略
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/HTTPAccessLogPolicyService/updateHTTPAccessLogPolicy`
- RPC`rpc updateHTTPAccessLogPolicy (UpdateHTTPAccessLogPolicyRequest) returns (RPCSuccess);`
**请求对象 (`UpdateHTTPAccessLogPolicyRequest`)**
```json
{
"httpAccessLogPolicyId": "int64",
"name": "string // 名称",
"isOn": "bool // 是否启用",
"optionsJSON": "bytes",
"condsJSON": "bytes",
"isPublic": "bool",
"firewallOnly": "bool",
"disableDefaultDB": "bool"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/HTTPAccessLogPolicyService/updateHTTPAccessLogPolicy" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## writeHTTPAccessLogPolicy
> 测试写入某个访问日志策略
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/HTTPAccessLogPolicyService/writeHTTPAccessLogPolicy`
- RPC`rpc writeHTTPAccessLogPolicy (WriteHTTPAccessLogPolicyRequest) returns (RPCSuccess);`
**请求对象 (`WriteHTTPAccessLogPolicyRequest`)**
```json
{
"httpAccessLogPolicyId": "int64",
"httpAccessLog": "HTTPAccessLog"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/HTTPAccessLogPolicyService/writeHTTPAccessLogPolicy" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---

View File

@@ -0,0 +1,133 @@
# HTTPAccessLogService
> 访问日志相关服务
---
## findHTTPAccessLog
> 查找单个日志
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/HTTPAccessLogService/findHTTPAccessLog`
- RPC`rpc findHTTPAccessLog (FindHTTPAccessLogRequest) returns (FindHTTPAccessLogResponse);`
**请求对象 (`FindHTTPAccessLogRequest`)**
```json
{
"requestId": "string"
}
```
**响应对象 (`FindHTTPAccessLogResponse`)**
```json
{
"httpAccessLog": "HTTPAccessLog"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/HTTPAccessLogService/findHTTPAccessLog" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findHTTPAccessLogPartitions
> 查找日志分区
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/HTTPAccessLogService/findHTTPAccessLogPartitions`
- RPC`rpc findHTTPAccessLogPartitions(FindHTTPAccessLogPartitionsRequest) returns (FindHTTPAccessLogPartitionsResponse);`
**请求对象 (`FindHTTPAccessLogPartitionsRequest`)**
```json
{
"day": "string // YYYYMMDD"
}
```
**响应对象 (`FindHTTPAccessLogPartitionsResponse`)**
```json
{
"partitions": "[]int32",
"reversePartitions": "[]int32"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/HTTPAccessLogService/findHTTPAccessLogPartitions" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## listHTTPAccessLogs
> 列出单页访问日志
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/HTTPAccessLogService/listHTTPAccessLogs`
- RPC`rpc listHTTPAccessLogs (ListHTTPAccessLogsRequest) returns (ListHTTPAccessLogsResponse);`
**请求对象 (`ListHTTPAccessLogsRequest`)**
```json
{
"requestId": "string // 上一页请求ID可选",
"serverId": "int64 // 服务ID",
"size": "int64 // 单页条数",
"day": "string // 日期格式YYYYMMDD",
"hourFrom": "string // 开始小时",
"hourTo": "string // 结束小时",
"reverse": "bool // 是否反向查找,可选",
"hasError": "bool // 是否有错误,可选",
"firewallPolicyId": "int64 // WAF策略ID可选",
"firewallRuleGroupId": "int64 // WAF分组ID可选",
"firewallRuleSetId": "int64 // WAF规则集ID可选",
"userId": "int64 // 用户ID",
"hasFirewallPolicy": "bool // 是否有WAF策略",
"keyword": "string // 关键词",
"ip": "string",
"domain": "string",
"nodeClusterId": "int64 // 集群ID",
"nodeId": "int64 // 节点ID",
"partition": "int32 // 分区"
}
```
**响应对象 (`ListHTTPAccessLogsResponse`)**
```json
{
"httpAccessLogs": "[]HTTPAccessLog",
"requestId": "string",
"hasMore": "bool"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/HTTPAccessLogService/listHTTPAccessLogs" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---

View File

@@ -0,0 +1,115 @@
# HTTPAuthPolicyService
> 服务认证策略服务
---
## createHTTPAuthPolicy
> 创建策略
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/HTTPAuthPolicyService/createHTTPAuthPolicy`
- RPC`rpc createHTTPAuthPolicy (CreateHTTPAuthPolicyRequest) returns (CreateHTTPAuthPolicyResponse);`
**请求对象 (`CreateHTTPAuthPolicyRequest`)**
```json
{
"name": "string // 名称",
"type": "string",
"paramsJSON": "bytes"
}
```
**响应对象 (`CreateHTTPAuthPolicyResponse`)**
```json
{
"httpAuthPolicyId": "int64"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/HTTPAuthPolicyService/createHTTPAuthPolicy" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findEnabledHTTPAuthPolicy
> 查找策略信息
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/HTTPAuthPolicyService/findEnabledHTTPAuthPolicy`
- RPC`rpc findEnabledHTTPAuthPolicy (FindEnabledHTTPAuthPolicyRequest) returns (FindEnabledHTTPAuthPolicyResponse);`
**请求对象 (`FindEnabledHTTPAuthPolicyRequest`)**
```json
{
"httpAuthPolicyId": "int64"
}
```
**响应对象 (`FindEnabledHTTPAuthPolicyResponse`)**
```json
{
"httpAuthPolicy": "HTTPAuthPolicy"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/HTTPAuthPolicyService/findEnabledHTTPAuthPolicy" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## updateHTTPAuthPolicy
> 修改策略
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/HTTPAuthPolicyService/updateHTTPAuthPolicy`
- RPC`rpc updateHTTPAuthPolicy (UpdateHTTPAuthPolicyRequest) returns (RPCSuccess);`
**请求对象 (`UpdateHTTPAuthPolicyRequest`)**
```json
{
"httpAuthPolicyId": "int64",
"name": "string // 名称",
"paramsJSON": "bytes",
"isOn": "bool // 是否启用"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/HTTPAuthPolicyService/updateHTTPAuthPolicy" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---

View File

@@ -0,0 +1,344 @@
# HTTPCachePolicyService
> 缓存策略服务
---
## countAllEnabledHTTPCachePolicies
> 计算缓存策略数量
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/HTTPCachePolicyService/countAllEnabledHTTPCachePolicies`
- RPC`rpc countAllEnabledHTTPCachePolicies (CountAllEnabledHTTPCachePoliciesRequest) returns (RPCCountResponse);`
**请求对象 (`CountAllEnabledHTTPCachePoliciesRequest`)**
```json
{
"keyword": "string // 关键词",
"nodeClusterId": "int64 // 集群ID",
"type": "string"
}
```
**响应对象 (`RPCCountResponse`)**
```json
{
"count": "int64 // 数量"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/HTTPCachePolicyService/countAllEnabledHTTPCachePolicies" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## createHTTPCachePolicy
> 创建缓存策略
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/HTTPCachePolicyService/createHTTPCachePolicy`
- RPC`rpc createHTTPCachePolicy (CreateHTTPCachePolicyRequest) returns (CreateHTTPCachePolicyResponse);`
**请求对象 (`CreateHTTPCachePolicyRequest`)**
```json
{
"isOn": "bool // 是否启用",
"name": "string // 名称",
"description": "string // 描述(备注)",
"capacityJSON": "bytes",
"maxSizeJSON": "bytes",
"type": "string",
"optionsJSON": "bytes",
"syncCompressionCache": "bool",
"fetchTimeoutJSON": "bytes // 预热超时时间"
}
```
**响应对象 (`CreateHTTPCachePolicyResponse`)**
```json
{
"httpCachePolicyId": "int64"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/HTTPCachePolicyService/createHTTPCachePolicy" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## deleteHTTPCachePolicy
> 删除缓存策略
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/HTTPCachePolicyService/deleteHTTPCachePolicy`
- RPC`rpc deleteHTTPCachePolicy (DeleteHTTPCachePolicyRequest) returns (RPCSuccess);`
**请求对象 (`DeleteHTTPCachePolicyRequest`)**
```json
{
"httpCachePolicyId": "int64"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/HTTPCachePolicyService/deleteHTTPCachePolicy" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findAllEnabledHTTPCachePolicies
> 获取所有可用策略
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/HTTPCachePolicyService/findAllEnabledHTTPCachePolicies`
- RPC`rpc findAllEnabledHTTPCachePolicies (FindAllEnabledHTTPCachePoliciesRequest) returns (FindAllEnabledHTTPCachePoliciesResponse);`
**请求对象 (`FindAllEnabledHTTPCachePoliciesRequest`)**
```json
{}
```
**响应对象 (`FindAllEnabledHTTPCachePoliciesResponse`)**
```json
{
"cachePolicies": "[]HTTPCachePolicy"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/HTTPCachePolicyService/findAllEnabledHTTPCachePolicies" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findEnabledHTTPCachePolicy
> 查找单个缓存策略信息
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/HTTPCachePolicyService/findEnabledHTTPCachePolicy`
- RPC`rpc findEnabledHTTPCachePolicy (FindEnabledHTTPCachePolicyRequest) returns (FindEnabledHTTPCachePolicyResponse);`
**请求对象 (`FindEnabledHTTPCachePolicyRequest`)**
```json
{
"httpCachePolicyId": "int64"
}
```
**响应对象 (`FindEnabledHTTPCachePolicyResponse`)**
```json
{
"httpCachePolicy": "HTTPCachePolicy"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/HTTPCachePolicyService/findEnabledHTTPCachePolicy" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findEnabledHTTPCachePolicyConfig
> 查找单个缓存策略配置
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/HTTPCachePolicyService/findEnabledHTTPCachePolicyConfig`
- RPC`rpc findEnabledHTTPCachePolicyConfig (FindEnabledHTTPCachePolicyConfigRequest) returns (FindEnabledHTTPCachePolicyConfigResponse);`
**请求对象 (`FindEnabledHTTPCachePolicyConfigRequest`)**
```json
{
"httpCachePolicyId": "int64"
}
```
**响应对象 (`FindEnabledHTTPCachePolicyConfigResponse`)**
```json
{
"httpCachePolicyJSON": "bytes"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/HTTPCachePolicyService/findEnabledHTTPCachePolicyConfig" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## listEnabledHTTPCachePolicies
> 列出单页的缓存策略
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/HTTPCachePolicyService/listEnabledHTTPCachePolicies`
- RPC`rpc listEnabledHTTPCachePolicies (ListEnabledHTTPCachePoliciesRequest) returns (ListEnabledHTTPCachePoliciesResponse);`
**请求对象 (`ListEnabledHTTPCachePoliciesRequest`)**
```json
{
"offset": "int64 // 读取位置",
"size": "int64 // 数量通常不能小于0",
"keyword": "string // 关键词",
"nodeClusterId": "int64 // 集群ID",
"type": "string"
}
```
**响应对象 (`ListEnabledHTTPCachePoliciesResponse`)**
```json
{
"httpCachePoliciesJSON": "bytes"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/HTTPCachePolicyService/listEnabledHTTPCachePolicies" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## updateHTTPCachePolicy
> 修改缓存策略
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/HTTPCachePolicyService/updateHTTPCachePolicy`
- RPC`rpc updateHTTPCachePolicy (UpdateHTTPCachePolicyRequest) returns (RPCSuccess);`
**请求对象 (`UpdateHTTPCachePolicyRequest`)**
```json
{
"httpCachePolicyId": "int64",
"isOn": "bool // 是否启用",
"name": "string // 名称",
"description": "string // 描述(备注)",
"capacityJSON": "bytes",
"maxSizeJSON": "bytes",
"type": "string",
"optionsJSON": "bytes",
"syncCompressionCache": "bool",
"fetchTimeoutJSON": "bytes // 预热超时时间"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/HTTPCachePolicyService/updateHTTPCachePolicy" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## updateHTTPCachePolicyRefs
> 设置缓存策略的默认条件
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/HTTPCachePolicyService/updateHTTPCachePolicyRefs`
- RPC`rpc updateHTTPCachePolicyRefs (UpdateHTTPCachePolicyRefsRequest) returns (RPCSuccess);`
**请求对象 (`UpdateHTTPCachePolicyRefsRequest`)**
```json
{
"httpCachePolicyId": "int64",
"refsJSON": "bytes"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/HTTPCachePolicyService/updateHTTPCachePolicyRefs" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---

View File

@@ -0,0 +1,79 @@
# HTTPCacheTaskKeyService
> 缓存任务Key管理
---
## countHTTPCacheTaskKeysWithDay
> 计算当天已经清理的Key数量
- 角色:`user`
- HTTP`POST https://backend.dooki.cloud/HTTPCacheTaskKeyService/countHTTPCacheTaskKeysWithDay`
- RPC`rpc countHTTPCacheTaskKeysWithDay(CountHTTPCacheTaskKeysWithDayRequest) returns (RPCCountResponse);`
**请求对象 (`CountHTTPCacheTaskKeysWithDayRequest`)**
```json
{
"keyType": "string // Key类型清理purge预热fetch",
"day": "string // 日期格式YYYYMMDD"
}
```
**响应对象 (`RPCCountResponse`)**
```json
{
"count": "int64 // 数量"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/HTTPCacheTaskKeyService/countHTTPCacheTaskKeysWithDay" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## validateHTTPCacheTaskKeys
> 校验缓存Key
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/HTTPCacheTaskKeyService/validateHTTPCacheTaskKeys`
- RPC`rpc validateHTTPCacheTaskKeys(ValidateHTTPCacheTaskKeysRequest) returns (ValidateHTTPCacheTaskKeysResponse);`
**请求对象 (`ValidateHTTPCacheTaskKeysRequest`)**
```json
{
"keys": "[]string"
}
```
**响应对象 (`ValidateHTTPCacheTaskKeysResponse`)**
```json
{
"failKeys": "[]FailKey",
"key": "string",
"reasonCode": "string"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/HTTPCacheTaskKeyService/validateHTTPCacheTaskKeys" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---

View File

@@ -0,0 +1,252 @@
# HTTPCacheTaskService
> 缓存任务管理
---
## countDoingHTTPCacheTasks
> 计算正在执行的任务数量
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/HTTPCacheTaskService/countDoingHTTPCacheTasks`
- RPC`rpc countDoingHTTPCacheTasks(CountDoingHTTPCacheTasksRequest) returns (RPCCountResponse);`
**请求对象 (`CountDoingHTTPCacheTasksRequest`)**
```json
{}
```
**响应对象 (`RPCCountResponse`)**
```json
{
"count": "int64 // 数量"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/HTTPCacheTaskService/countDoingHTTPCacheTasks" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## countHTTPCacheTasks
> 计算任务总数量
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/HTTPCacheTaskService/countHTTPCacheTasks`
- RPC`rpc countHTTPCacheTasks(CountHTTPCacheTasksRequest) returns (RPCCountResponse);`
**请求对象 (`CountHTTPCacheTasksRequest`)**
```json
{}
```
**响应对象 (`RPCCountResponse`)**
```json
{
"count": "int64 // 数量"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/HTTPCacheTaskService/countHTTPCacheTasks" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## createHTTPCacheTask
> 创建任务
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/HTTPCacheTaskService/createHTTPCacheTask`
- RPC`rpc createHTTPCacheTask(CreateHTTPCacheTaskRequest) returns (CreateHTTPCacheTaskResponse);`
**请求对象 (`CreateHTTPCacheTaskRequest`)**
```json
{
"type": "string // 任务类型,值为 purge 或者 fetchpurge删除缓存fetch预热缓存",
"keyType": "string // Key类型值为 key 或者 prefix如果是 key 表示处理的是URL如果是 prefix 表示处理的是目录;预热的时候只能为 key",
"keys": "[]string // 要清理的Key根据Key类型keyType来输入不同的内容"
}
```
**响应对象 (`CreateHTTPCacheTaskResponse`)**
```json
{
"httpCacheTaskId": "int64 // 生成的任务ID",
"countKeys": "int64 // 任务中包含的Key"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/HTTPCacheTaskService/createHTTPCacheTask" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## deleteHTTPCacheTask
> 删除任务
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/HTTPCacheTaskService/deleteHTTPCacheTask`
- RPC`rpc deleteHTTPCacheTask(DeleteHTTPCacheTaskRequest) returns (RPCSuccess);`
**请求对象 (`DeleteHTTPCacheTaskRequest`)**
```json
{
"httpCacheTaskId": "int64 // 任务ID"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/HTTPCacheTaskService/deleteHTTPCacheTask" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findEnabledHTTPCacheTask
> 查找单个任务
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/HTTPCacheTaskService/findEnabledHTTPCacheTask`
- RPC`rpc findEnabledHTTPCacheTask(FindEnabledHTTPCacheTaskRequest) returns (FindEnabledHTTPCacheTaskResponse);`
**请求对象 (`FindEnabledHTTPCacheTaskRequest`)**
```json
{
"httpCacheTaskId": "int64 // 任务ID"
}
```
**响应对象 (`FindEnabledHTTPCacheTaskResponse`)**
```json
{
"httpCacheTask": "HTTPCacheTask // 任务信息"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/HTTPCacheTaskService/findEnabledHTTPCacheTask" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## listHTTPCacheTasks
> 列出单页任务
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/HTTPCacheTaskService/listHTTPCacheTasks`
- RPC`rpc listHTTPCacheTasks(ListHTTPCacheTasksRequest) returns (ListHTTPCacheTasksResponse);`
**请求对象 (`ListHTTPCacheTasksRequest`)**
```json
{
"offset": "int64 // 查询起始位置",
"size": "int64 // 查询条数"
}
```
**响应对象 (`ListHTTPCacheTasksResponse`)**
```json
{
"httpCacheTasks": "[]HTTPCacheTask // 一组任务信息"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/HTTPCacheTaskService/listHTTPCacheTasks" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## resetHTTPCacheTask
> 重置任务状态
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/HTTPCacheTaskService/resetHTTPCacheTask`
- RPC`rpc resetHTTPCacheTask(ResetHTTPCacheTaskRequest) returns (RPCSuccess);`
**请求对象 (`ResetHTTPCacheTaskRequest`)**
```json
{
"httpCacheTaskId": "int64 // 任务ID"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/HTTPCacheTaskService/resetHTTPCacheTask" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---

View File

@@ -0,0 +1,159 @@
# HTTPFastcgiService
> Fastcgi服务
---
## createHTTPFastcgi
> 创建Fastcgi
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/HTTPFastcgiService/createHTTPFastcgi`
- RPC`rpc createHTTPFastcgi (CreateHTTPFastcgiRequest) returns (CreateHTTPFastcgiResponse);`
**请求对象 (`CreateHTTPFastcgiRequest`)**
```json
{
"isOn": "bool // 是否启用",
"address": "string",
"paramsJSON": "bytes",
"readTimeoutJSON": "bytes",
"connTimeoutJSON": "bytes",
"poolSize": "int32",
"pathInfoPattern": "string"
}
```
**响应对象 (`CreateHTTPFastcgiResponse`)**
```json
{
"httpFastcgiId": "int64"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/HTTPFastcgiService/createHTTPFastcgi" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findEnabledHTTPFastcgi
> 获取Fastcgi详情
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/HTTPFastcgiService/findEnabledHTTPFastcgi`
- RPC`rpc findEnabledHTTPFastcgi (FindEnabledHTTPFastcgiRequest) returns (FindEnabledHTTPFastcgiResponse);`
**请求对象 (`FindEnabledHTTPFastcgiRequest`)**
```json
{
"httpFastcgiId": "int64"
}
```
**响应对象 (`FindEnabledHTTPFastcgiResponse`)**
```json
{
"httpFastcgi": "HTTPFastcgi"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/HTTPFastcgiService/findEnabledHTTPFastcgi" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findEnabledHTTPFastcgiConfig
> 获取Fastcgi配置
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/HTTPFastcgiService/findEnabledHTTPFastcgiConfig`
- RPC`rpc findEnabledHTTPFastcgiConfig (FindEnabledHTTPFastcgiConfigRequest) returns (FindEnabledHTTPFastcgiConfigResponse);`
**请求对象 (`FindEnabledHTTPFastcgiConfigRequest`)**
```json
{
"httpFastcgiId": "int64"
}
```
**响应对象 (`FindEnabledHTTPFastcgiConfigResponse`)**
```json
{
"httpFastcgiJSON": "bytes"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/HTTPFastcgiService/findEnabledHTTPFastcgiConfig" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## updateHTTPFastcgi
> 修改Fastcgi
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/HTTPFastcgiService/updateHTTPFastcgi`
- RPC`rpc updateHTTPFastcgi (UpdateHTTPFastcgiRequest) returns (RPCSuccess);`
**请求对象 (`UpdateHTTPFastcgiRequest`)**
```json
{
"httpFastcgiId": "int64",
"isOn": "bool // 是否启用",
"address": "string",
"paramsJSON": "bytes",
"readTimeoutJSON": "bytes",
"connTimeoutJSON": "bytes",
"poolSize": "int32",
"pathInfoPattern": "string"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/HTTPFastcgiService/updateHTTPFastcgi" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---

View File

@@ -0,0 +1,536 @@
# HTTPFirewallPolicyService
> HTTP防火墙WAF服务
---
## checkHTTPFirewallPolicyIPStatus
> 检查IP状态
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/HTTPFirewallPolicyService/checkHTTPFirewallPolicyIPStatus`
- RPC`rpc checkHTTPFirewallPolicyIPStatus (CheckHTTPFirewallPolicyIPStatusRequest) returns (CheckHTTPFirewallPolicyIPStatusResponse);`
**请求对象 (`CheckHTTPFirewallPolicyIPStatusRequest`)**
```json
{
"httpFirewallPolicyId": "int64",
"ip": "string"
}
```
**响应对象 (`CheckHTTPFirewallPolicyIPStatusResponse`)**
```json
{
"isOk": "bool // 是否查询成功",
"error": "string // 错误信息",
"isFound": "bool // 是否找到",
"isAllowed": "bool // 是否允许访问",
"ipList": "IPList // 匹配的IPList",
"ipItem": "IPItem // 匹配的IPItem",
"regionCountry": "RegionCountry // 匹配到封禁的地区",
"regionProvince": "RegionProvince // 匹配到封禁的省份"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/HTTPFirewallPolicyService/checkHTTPFirewallPolicyIPStatus" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## countAllEnabledHTTPFirewallPolicies
> 计算可用的防火墙策略数量
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/HTTPFirewallPolicyService/countAllEnabledHTTPFirewallPolicies`
- RPC`rpc countAllEnabledHTTPFirewallPolicies (CountAllEnabledHTTPFirewallPoliciesRequest) returns (RPCCountResponse);`
**请求对象 (`CountAllEnabledHTTPFirewallPoliciesRequest`)**
```json
{
"keyword": "string // 关键词",
"nodeClusterId": "int64 // 集群ID"
}
```
**响应对象 (`RPCCountResponse`)**
```json
{
"count": "int64 // 数量"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/HTTPFirewallPolicyService/countAllEnabledHTTPFirewallPolicies" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## createEmptyHTTPFirewallPolicy
> 创建空防火墙策略
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/HTTPFirewallPolicyService/createEmptyHTTPFirewallPolicy`
- RPC`rpc createEmptyHTTPFirewallPolicy (CreateEmptyHTTPFirewallPolicyRequest) returns (CreateEmptyHTTPFirewallPolicyResponse);`
**请求对象 (`CreateEmptyHTTPFirewallPolicyRequest`)**
```json
{
"isOn": "bool // 是否启用",
"name": "string // 名称",
"description": "string // 描述(备注)",
"serverId": "int64 // 服务ID网站ID",
"serverGroupId": "int64 // 服务分组ID网站分组ID"
}
```
**响应对象 (`CreateEmptyHTTPFirewallPolicyResponse`)**
```json
{
"httpFirewallPolicyId": "int64"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/HTTPFirewallPolicyService/createEmptyHTTPFirewallPolicy" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## createHTTPFirewallPolicy
> 创建防火墙策略
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/HTTPFirewallPolicyService/createHTTPFirewallPolicy`
- RPC`rpc createHTTPFirewallPolicy (CreateHTTPFirewallPolicyRequest) returns (CreateHTTPFirewallPolicyResponse);`
**请求对象 (`CreateHTTPFirewallPolicyRequest`)**
```json
{
"isOn": "bool // 是否启用",
"name": "string // 名称",
"description": "string // 描述(备注)",
"httpFirewallGroupCodes": "[]string",
"serverId": "int64 // 服务ID网站ID",
"serverGroupId": "int64 // 服务分组ID网站分组ID"
}
```
**响应对象 (`CreateHTTPFirewallPolicyResponse`)**
```json
{
"httpFirewallPolicyId": "int64"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/HTTPFirewallPolicyService/createHTTPFirewallPolicy" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## deleteHTTPFirewallPolicy
> 删除某个防火墙策略
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/HTTPFirewallPolicyService/deleteHTTPFirewallPolicy`
- RPC`rpc deleteHTTPFirewallPolicy (DeleteHTTPFirewallPolicyRequest) returns (RPCSuccess);`
**请求对象 (`DeleteHTTPFirewallPolicyRequest`)**
```json
{
"httpFirewallPolicyId": "int64"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/HTTPFirewallPolicyService/deleteHTTPFirewallPolicy" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findAllEnabledHTTPFirewallPolicies
> 获取所有可用策略
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/HTTPFirewallPolicyService/findAllEnabledHTTPFirewallPolicies`
- RPC`rpc findAllEnabledHTTPFirewallPolicies (FindAllEnabledHTTPFirewallPoliciesRequest) returns (FindAllEnabledHTTPFirewallPoliciesResponse);`
**请求对象 (`FindAllEnabledHTTPFirewallPoliciesRequest`)**
```json
{}
```
**响应对象 (`FindAllEnabledHTTPFirewallPoliciesResponse`)**
```json
{
"firewallPolicies": "[]HTTPFirewallPolicy"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/HTTPFirewallPolicyService/findAllEnabledHTTPFirewallPolicies" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findEnabledHTTPFirewallPolicy
> 获取防火墙的基本信息
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/HTTPFirewallPolicyService/findEnabledHTTPFirewallPolicy`
- RPC`rpc findEnabledHTTPFirewallPolicy (FindEnabledHTTPFirewallPolicyRequest) returns (FindEnabledHTTPFirewallPolicyResponse);`
**请求对象 (`FindEnabledHTTPFirewallPolicyRequest`)**
```json
{
"httpFirewallPolicyId": "int64"
}
```
**响应对象 (`FindEnabledHTTPFirewallPolicyResponse`)**
```json
{
"httpFirewallPolicy": "HTTPFirewallPolicy"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/HTTPFirewallPolicyService/findEnabledHTTPFirewallPolicy" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findEnabledHTTPFirewallPolicyConfig
> 查找单个防火墙配置
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/HTTPFirewallPolicyService/findEnabledHTTPFirewallPolicyConfig`
- RPC`rpc findEnabledHTTPFirewallPolicyConfig (FindEnabledHTTPFirewallPolicyConfigRequest) returns (FindEnabledHTTPFirewallPolicyConfigResponse);`
**请求对象 (`FindEnabledHTTPFirewallPolicyConfigRequest`)**
```json
{
"httpFirewallPolicyId": "int64"
}
```
**响应对象 (`FindEnabledHTTPFirewallPolicyConfigResponse`)**
```json
{
"httpFirewallPolicyJSON": "bytes"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/HTTPFirewallPolicyService/findEnabledHTTPFirewallPolicyConfig" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findServerIdWithHTTPFirewallPolicyId
> 获取防火墙对应的网站ID
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/HTTPFirewallPolicyService/findServerIdWithHTTPFirewallPolicyId`
- RPC`rpc findServerIdWithHTTPFirewallPolicyId(FindServerIdWithHTTPFirewallPolicyIdRequest) returns (FindServerIdWithHTTPFirewallPolicyIdResponse);`
**请求对象 (`FindServerIdWithHTTPFirewallPolicyIdRequest`)**
```json
{
"httpFirewallPolicyId": "int64 // 防火墙策略ID"
}
```
**响应对象 (`FindServerIdWithHTTPFirewallPolicyIdResponse`)**
```json
{
"serverId": "int64 // 防火墙策略对应的网站ID公共的防火墙策略的网站ID为0"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/HTTPFirewallPolicyService/findServerIdWithHTTPFirewallPolicyId" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## importHTTPFirewallPolicy
> 导入策略数据
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/HTTPFirewallPolicyService/importHTTPFirewallPolicy`
- RPC`rpc importHTTPFirewallPolicy (ImportHTTPFirewallPolicyRequest) returns (RPCSuccess);`
**请求对象 (`ImportHTTPFirewallPolicyRequest`)**
```json
{
"httpFirewallPolicyId": "int64",
"httpFirewallPolicyJSON": "bytes"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/HTTPFirewallPolicyService/importHTTPFirewallPolicy" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## listEnabledHTTPFirewallPolicies
> 列出单页的防火墙策略
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/HTTPFirewallPolicyService/listEnabledHTTPFirewallPolicies`
- RPC`rpc listEnabledHTTPFirewallPolicies (ListEnabledHTTPFirewallPoliciesRequest) returns (ListEnabledHTTPFirewallPoliciesResponse);`
**请求对象 (`ListEnabledHTTPFirewallPoliciesRequest`)**
```json
{
"offset": "int64 // 读取位置",
"size": "int64 // 数量通常不能小于0",
"keyword": "string // 关键词",
"nodeClusterId": "int64 // 集群ID"
}
```
**响应对象 (`ListEnabledHTTPFirewallPoliciesResponse`)**
```json
{
"httpFirewallPolicies": "[]HTTPFirewallPolicy"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/HTTPFirewallPolicyService/listEnabledHTTPFirewallPolicies" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## updateHTTPFirewallInboundConfig
> 修改inbound信息
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/HTTPFirewallPolicyService/updateHTTPFirewallInboundConfig`
- RPC`rpc updateHTTPFirewallInboundConfig (UpdateHTTPFirewallInboundConfigRequest) returns (RPCSuccess);`
**请求对象 (`UpdateHTTPFirewallInboundConfigRequest`)**
```json
{
"httpFirewallPolicyId": "int64",
"inboundJSON": "bytes"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/HTTPFirewallPolicyService/updateHTTPFirewallInboundConfig" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## updateHTTPFirewallPolicy
> 修改防火墙策略
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/HTTPFirewallPolicyService/updateHTTPFirewallPolicy`
- RPC`rpc updateHTTPFirewallPolicy (UpdateHTTPFirewallPolicyRequest) returns (RPCSuccess);`
**请求对象 (`UpdateHTTPFirewallPolicyRequest`)**
```json
{
"httpFirewallPolicyId": "int64",
"isOn": "bool // 是否启用",
"name": "string // 名称",
"description": "string // 描述(备注)",
"firewallGroupCodes": "[]string",
"blockOptionsJSON": "bytes // 阻止动作配置",
"pageOptionsJSON": "bytes // 显示网页动作配置",
"captchaOptionsJSON": "bytes // 验证码动作配置",
"jsCookieOptionsJSON": "bytes // JSCookie动作配置",
"mode": "string",
"useLocalFirewall": "bool // 是否使用本地防火墙",
"synFloodJSON": "bytes // SYN Flood相关配置",
"LogJSON": "bytes // 日志相关配置",
"maxRequestBodySize": "int64 // 最大文件尺寸,单位为字节",
"denyCountryHTML": "string // 区域封禁提示",
"denyProvinceHTML": "string // 省份封禁提示"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/HTTPFirewallPolicyService/updateHTTPFirewallPolicy" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## updateHTTPFirewallPolicyGroups
> 修改分组信息
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/HTTPFirewallPolicyService/updateHTTPFirewallPolicyGroups`
- RPC`rpc updateHTTPFirewallPolicyGroups (UpdateHTTPFirewallPolicyGroupsRequest) returns (RPCSuccess);`
**请求对象 (`UpdateHTTPFirewallPolicyGroupsRequest`)**
```json
{
"httpFirewallPolicyId": "int64",
"inboundJSON": "bytes",
"outboundJSON": "bytes"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/HTTPFirewallPolicyService/updateHTTPFirewallPolicyGroups" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---

View File

@@ -0,0 +1,258 @@
# HTTPFirewallRuleGroupService
> WAF分组服务
---
## addHTTPFirewallRuleGroupSet
> 添加规则集
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/HTTPFirewallRuleGroupService/addHTTPFirewallRuleGroupSet`
- RPC`rpc addHTTPFirewallRuleGroupSet(AddHTTPFirewallRuleGroupSetRequest) returns (RPCSuccess);`
**请求对象 (`AddHTTPFirewallRuleGroupSetRequest`)**
```json
{
"firewallRuleGroupId": "int64",
"firewallRuleSetConfigJSON": "bytes"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/HTTPFirewallRuleGroupService/addHTTPFirewallRuleGroupSet" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## createHTTPFirewallRuleGroup
> 创建分组
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/HTTPFirewallRuleGroupService/createHTTPFirewallRuleGroup`
- RPC`rpc createHTTPFirewallRuleGroup (CreateHTTPFirewallRuleGroupRequest) returns (CreateHTTPFirewallRuleGroupResponse);`
**请求对象 (`CreateHTTPFirewallRuleGroupRequest`)**
```json
{
"isOn": "bool // 是否启用",
"name": "string // 名称",
"code": "string",
"description": "string // 描述(备注)"
}
```
**响应对象 (`CreateHTTPFirewallRuleGroupResponse`)**
```json
{
"firewallRuleGroupId": "int64"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/HTTPFirewallRuleGroupService/createHTTPFirewallRuleGroup" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findEnabledHTTPFirewallRuleGroup
> 获取分组信息
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/HTTPFirewallRuleGroupService/findEnabledHTTPFirewallRuleGroup`
- RPC`rpc findEnabledHTTPFirewallRuleGroup (FindEnabledHTTPFirewallRuleGroupRequest) returns (FindEnabledHTTPFirewallRuleGroupResponse);`
**请求对象 (`FindEnabledHTTPFirewallRuleGroupRequest`)**
```json
{
"firewallRuleGroupId": "int64"
}
```
**响应对象 (`FindEnabledHTTPFirewallRuleGroupResponse`)**
```json
{
"firewallRuleGroup": "HTTPFirewallRuleGroup"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/HTTPFirewallRuleGroupService/findEnabledHTTPFirewallRuleGroup" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findEnabledHTTPFirewallRuleGroupConfig
> 获取分组配置
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/HTTPFirewallRuleGroupService/findEnabledHTTPFirewallRuleGroupConfig`
- RPC`rpc findEnabledHTTPFirewallRuleGroupConfig (FindEnabledHTTPFirewallRuleGroupConfigRequest) returns (FindEnabledHTTPFirewallRuleGroupConfigResponse);`
**请求对象 (`FindEnabledHTTPFirewallRuleGroupConfigRequest`)**
```json
{
"firewallRuleGroupId": "int64"
}
```
**响应对象 (`FindEnabledHTTPFirewallRuleGroupConfigResponse`)**
```json
{
"firewallRuleGroupJSON": "bytes"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/HTTPFirewallRuleGroupService/findEnabledHTTPFirewallRuleGroupConfig" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## updateHTTPFirewallRuleGroup
> 修改分组
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/HTTPFirewallRuleGroupService/updateHTTPFirewallRuleGroup`
- RPC`rpc updateHTTPFirewallRuleGroup (UpdateHTTPFirewallRuleGroupRequest) returns (RPCSuccess);`
**请求对象 (`UpdateHTTPFirewallRuleGroupRequest`)**
```json
{
"firewallRuleGroupId": "int64",
"isOn": "bool // 是否启用",
"name": "string // 名称",
"description": "string // 描述(备注)",
"code": "string"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/HTTPFirewallRuleGroupService/updateHTTPFirewallRuleGroup" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## updateHTTPFirewallRuleGroupIsOn
> 设置是否启用分组
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/HTTPFirewallRuleGroupService/updateHTTPFirewallRuleGroupIsOn`
- RPC`rpc updateHTTPFirewallRuleGroupIsOn (UpdateHTTPFirewallRuleGroupIsOnRequest) returns (RPCSuccess);`
**请求对象 (`UpdateHTTPFirewallRuleGroupIsOnRequest`)**
```json
{
"firewallRuleGroupId": "int64",
"isOn": "bool // 是否启用"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/HTTPFirewallRuleGroupService/updateHTTPFirewallRuleGroupIsOn" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## updateHTTPFirewallRuleGroupSets
> 修改分组的规则集
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/HTTPFirewallRuleGroupService/updateHTTPFirewallRuleGroupSets`
- RPC`rpc updateHTTPFirewallRuleGroupSets (UpdateHTTPFirewallRuleGroupSetsRequest) returns (RPCSuccess);`
**请求对象 (`UpdateHTTPFirewallRuleGroupSetsRequest`)**
```json
{
"firewallRuleGroupId": "int64",
"firewallRuleSetsJSON": "bytes"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/HTTPFirewallRuleGroupService/updateHTTPFirewallRuleGroupSets" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---

View File

@@ -0,0 +1,147 @@
# HTTPFirewallRuleSetService
> WAF规则集服务
---
## createOrUpdateHTTPFirewallRuleSetFromConfig
> 根据配置创建或修改规则集
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/HTTPFirewallRuleSetService/createOrUpdateHTTPFirewallRuleSetFromConfig`
- RPC`rpc createOrUpdateHTTPFirewallRuleSetFromConfig (CreateOrUpdateHTTPFirewallRuleSetFromConfigRequest) returns (CreateOrUpdateHTTPFirewallRuleSetFromConfigResponse);`
**请求对象 (`CreateOrUpdateHTTPFirewallRuleSetFromConfigRequest`)**
```json
{
"firewallRuleSetConfigJSON": "bytes"
}
```
**响应对象 (`CreateOrUpdateHTTPFirewallRuleSetFromConfigResponse`)**
```json
{
"firewallRuleSetId": "int64"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/HTTPFirewallRuleSetService/createOrUpdateHTTPFirewallRuleSetFromConfig" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findEnabledHTTPFirewallRuleSet
> 查找规则集信息
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/HTTPFirewallRuleSetService/findEnabledHTTPFirewallRuleSet`
- RPC`rpc findEnabledHTTPFirewallRuleSet (FindEnabledHTTPFirewallRuleSetRequest) returns (FindEnabledHTTPFirewallRuleSetResponse);`
**请求对象 (`FindEnabledHTTPFirewallRuleSetRequest`)**
```json
{
"firewallRuleSetId": "int64"
}
```
**响应对象 (`FindEnabledHTTPFirewallRuleSetResponse`)**
```json
{
"firewallRuleSet": "HTTPFirewallRuleSet"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/HTTPFirewallRuleSetService/findEnabledHTTPFirewallRuleSet" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findEnabledHTTPFirewallRuleSetConfig
> 查找规则集配置
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/HTTPFirewallRuleSetService/findEnabledHTTPFirewallRuleSetConfig`
- RPC`rpc findEnabledHTTPFirewallRuleSetConfig (FindEnabledHTTPFirewallRuleSetConfigRequest) returns (FindEnabledHTTPFirewallRuleSetConfigResponse);`
**请求对象 (`FindEnabledHTTPFirewallRuleSetConfigRequest`)**
```json
{
"firewallRuleSetId": "int64"
}
```
**响应对象 (`FindEnabledHTTPFirewallRuleSetConfigResponse`)**
```json
{
"firewallRuleSetJSON": "bytes"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/HTTPFirewallRuleSetService/findEnabledHTTPFirewallRuleSetConfig" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## updateHTTPFirewallRuleSetIsOn
> 设置开启状态
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/HTTPFirewallRuleSetService/updateHTTPFirewallRuleSetIsOn`
- RPC`rpc updateHTTPFirewallRuleSetIsOn (UpdateHTTPFirewallRuleSetIsOnRequest) returns (RPCSuccess);`
**请求对象 (`UpdateHTTPFirewallRuleSetIsOnRequest`)**
```json
{
"firewallRuleSetId": "int64",
"isOn": "bool // 是否启用"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/HTTPFirewallRuleSetService/updateHTTPFirewallRuleSetIsOn" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---

View File

@@ -0,0 +1,319 @@
# HTTPHeaderPolicyService
> HTTP Header策略服务
---
## createHTTPHeaderPolicy
> 创建策略
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/HTTPHeaderPolicyService/createHTTPHeaderPolicy`
- RPC`rpc createHTTPHeaderPolicy (CreateHTTPHeaderPolicyRequest) returns (CreateHTTPHeaderPolicyResponse);`
**请求对象 (`CreateHTTPHeaderPolicyRequest`)**
```json
{}
```
**响应对象 (`CreateHTTPHeaderPolicyResponse`)**
```json
{
"httpHeaderPolicyId": "int64"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/HTTPHeaderPolicyService/createHTTPHeaderPolicy" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findEnabledHTTPHeaderPolicyConfig
> 查找策略配置
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/HTTPHeaderPolicyService/findEnabledHTTPHeaderPolicyConfig`
- RPC`rpc findEnabledHTTPHeaderPolicyConfig (FindEnabledHTTPHeaderPolicyConfigRequest) returns (FindEnabledHTTPHeaderPolicyConfigResponse);`
**请求对象 (`FindEnabledHTTPHeaderPolicyConfigRequest`)**
```json
{
"httpHeaderPolicyId": "int64"
}
```
**响应对象 (`FindEnabledHTTPHeaderPolicyConfigResponse`)**
```json
{
"httpHeaderPolicyJSON": "bytes"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/HTTPHeaderPolicyService/findEnabledHTTPHeaderPolicyConfig" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## updateHTTPHeaderPolicyAddingHeaders
> 修改AddHeaders
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/HTTPHeaderPolicyService/updateHTTPHeaderPolicyAddingHeaders`
- RPC`rpc updateHTTPHeaderPolicyAddingHeaders (UpdateHTTPHeaderPolicyAddingHeadersRequest) returns (RPCSuccess);`
**请求对象 (`UpdateHTTPHeaderPolicyAddingHeadersRequest`)**
```json
{
"httpHeaderPolicyId": "int64",
"headersJSON": "bytes"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/HTTPHeaderPolicyService/updateHTTPHeaderPolicyAddingHeaders" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## updateHTTPHeaderPolicyAddingTrailers
> 修改AddTrailers
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/HTTPHeaderPolicyService/updateHTTPHeaderPolicyAddingTrailers`
- RPC`rpc updateHTTPHeaderPolicyAddingTrailers (UpdateHTTPHeaderPolicyAddingTrailersRequest) returns (RPCSuccess);`
**请求对象 (`UpdateHTTPHeaderPolicyAddingTrailersRequest`)**
```json
{
"httpHeaderPolicyId": "int64",
"headersJSON": "bytes"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/HTTPHeaderPolicyService/updateHTTPHeaderPolicyAddingTrailers" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## updateHTTPHeaderPolicyCORS
> 修改策略CORS设置
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/HTTPHeaderPolicyService/updateHTTPHeaderPolicyCORS`
- RPC`rpc updateHTTPHeaderPolicyCORS(UpdateHTTPHeaderPolicyCORSRequest) returns (RPCSuccess);`
**请求对象 (`UpdateHTTPHeaderPolicyCORSRequest`)**
```json
{
"httpHeaderPolicyId": "int64",
"corsJSON": "bytes"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/HTTPHeaderPolicyService/updateHTTPHeaderPolicyCORS" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## updateHTTPHeaderPolicyDeletingHeaders
> 修改删除的Headers
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/HTTPHeaderPolicyService/updateHTTPHeaderPolicyDeletingHeaders`
- RPC`rpc updateHTTPHeaderPolicyDeletingHeaders (UpdateHTTPHeaderPolicyDeletingHeadersRequest) returns (RPCSuccess);`
**请求对象 (`UpdateHTTPHeaderPolicyDeletingHeadersRequest`)**
```json
{
"httpHeaderPolicyId": "int64",
"headerNames": "[]string"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/HTTPHeaderPolicyService/updateHTTPHeaderPolicyDeletingHeaders" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## updateHTTPHeaderPolicyNonStandardHeaders
> 修改非标的Headers
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/HTTPHeaderPolicyService/updateHTTPHeaderPolicyNonStandardHeaders`
- RPC`rpc updateHTTPHeaderPolicyNonStandardHeaders(UpdateHTTPHeaderPolicyNonStandardHeadersRequest) returns (RPCSuccess);`
**请求对象 (`UpdateHTTPHeaderPolicyNonStandardHeadersRequest`)**
```json
{
"httpHeaderPolicyId": "int64 // Header策略ID",
"headerNames": "[]string // 非标Header名称列表"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/HTTPHeaderPolicyService/updateHTTPHeaderPolicyNonStandardHeaders" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## updateHTTPHeaderPolicyReplacingHeaders
> 修改ReplaceHeaders
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/HTTPHeaderPolicyService/updateHTTPHeaderPolicyReplacingHeaders`
- RPC`rpc updateHTTPHeaderPolicyReplacingHeaders (UpdateHTTPHeaderPolicyReplacingHeadersRequest) returns (RPCSuccess);`
**请求对象 (`UpdateHTTPHeaderPolicyReplacingHeadersRequest`)**
```json
{
"httpHeaderPolicyId": "int64",
"headersJSON": "bytes"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/HTTPHeaderPolicyService/updateHTTPHeaderPolicyReplacingHeaders" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## updateHTTPHeaderPolicySettingHeaders
> 修改SetHeaders
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/HTTPHeaderPolicyService/updateHTTPHeaderPolicySettingHeaders`
- RPC`rpc updateHTTPHeaderPolicySettingHeaders (UpdateHTTPHeaderPolicySettingHeadersRequest) returns (RPCSuccess);`
**请求对象 (`UpdateHTTPHeaderPolicySettingHeadersRequest`)**
```json
{
"httpHeaderPolicyId": "int64",
"headersJSON": "bytes"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/HTTPHeaderPolicyService/updateHTTPHeaderPolicySettingHeaders" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---

View File

@@ -0,0 +1,127 @@
# HTTPHeaderService
> HTTP Header管理服务
---
## createHTTPHeader
> 创建Header
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/HTTPHeaderService/createHTTPHeader`
- RPC`rpc createHTTPHeader (CreateHTTPHeaderRequest) returns (CreateHTTPHeaderResponse);`
**请求对象 (`CreateHTTPHeaderRequest`)**
```json
{
"name": "string // 名称",
"value": "string",
"status": "[]int32",
"disableRedirect": "bool",
"shouldAppend": "bool",
"shouldReplace": "bool",
"replaceValuesJSON": "bytes",
"methods": "[]string",
"domains": "[]string"
}
```
**响应对象 (`CreateHTTPHeaderResponse`)**
```json
{
"headerId": "int64"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/HTTPHeaderService/createHTTPHeader" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findEnabledHTTPHeaderConfig
> 查找配置
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/HTTPHeaderService/findEnabledHTTPHeaderConfig`
- RPC`rpc findEnabledHTTPHeaderConfig (FindEnabledHTTPHeaderConfigRequest) returns (FindEnabledHTTPHeaderConfigResponse);`
**请求对象 (`FindEnabledHTTPHeaderConfigRequest`)**
```json
{
"headerId": "int64"
}
```
**响应对象 (`FindEnabledHTTPHeaderConfigResponse`)**
```json
{
"headerJSON": "bytes"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/HTTPHeaderService/findEnabledHTTPHeaderConfig" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## updateHTTPHeader
> 修改Header
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/HTTPHeaderService/updateHTTPHeader`
- RPC`rpc updateHTTPHeader (UpdateHTTPHeaderRequest) returns (RPCSuccess);`
**请求对象 (`UpdateHTTPHeaderRequest`)**
```json
{
"headerId": "int64",
"name": "string // 名称",
"value": "string",
"status": "[]int32",
"disableRedirect": "bool",
"shouldAppend": "bool",
"shouldReplace": "bool",
"replaceValuesJSON": "bytes",
"methods": "[]string",
"domains": "[]string"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/HTTPHeaderService/updateHTTPHeader" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---

View File

@@ -0,0 +1,265 @@
# HTTPLocationService
> 路由规则服务
---
## createHTTPLocation
> 创建路径规则
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/HTTPLocationService/createHTTPLocation`
- RPC`rpc createHTTPLocation (CreateHTTPLocationRequest) returns (CreateHTTPLocationResponse);`
**请求对象 (`CreateHTTPLocationRequest`)**
```json
{
"parentId": "int64",
"name": "string // 名称",
"description": "string // 描述(备注)",
"pattern": "string",
"isBreak": "bool",
"condsJSON": "bytes",
"domains": "[]string"
}
```
**响应对象 (`CreateHTTPLocationResponse`)**
```json
{
"locationId": "int64"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/HTTPLocationService/createHTTPLocation" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## deleteHTTPLocation
> 删除路径规则
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/HTTPLocationService/deleteHTTPLocation`
- RPC`rpc deleteHTTPLocation (DeleteHTTPLocationRequest) returns (RPCSuccess);`
**请求对象 (`DeleteHTTPLocationRequest`)**
```json
{
"locationId": "int64"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/HTTPLocationService/deleteHTTPLocation" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findAndInitHTTPLocationReverseProxyConfig
> 查找反向代理设置
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/HTTPLocationService/findAndInitHTTPLocationReverseProxyConfig`
- RPC`rpc findAndInitHTTPLocationReverseProxyConfig (FindAndInitHTTPLocationReverseProxyConfigRequest) returns (FindAndInitHTTPLocationReverseProxyConfigResponse);`
**请求对象 (`FindAndInitHTTPLocationReverseProxyConfigRequest`)**
```json
{
"locationId": "int64"
}
```
**响应对象 (`FindAndInitHTTPLocationReverseProxyConfigResponse`)**
```json
{
"reverseProxyJSON": "bytes",
"reverseProxyRefJSON": "bytes"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/HTTPLocationService/findAndInitHTTPLocationReverseProxyConfig" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findAndInitHTTPLocationWebConfig
> 初始化Web设置
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/HTTPLocationService/findAndInitHTTPLocationWebConfig`
- RPC`rpc findAndInitHTTPLocationWebConfig (FindAndInitHTTPLocationWebConfigRequest) returns (FindAndInitHTTPLocationWebConfigResponse);`
**请求对象 (`FindAndInitHTTPLocationWebConfigRequest`)**
```json
{
"locationId": "int64"
}
```
**响应对象 (`FindAndInitHTTPLocationWebConfigResponse`)**
```json
{
"webJSON": "bytes"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/HTTPLocationService/findAndInitHTTPLocationWebConfig" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findEnabledHTTPLocationConfig
> 查找路径规则配置
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/HTTPLocationService/findEnabledHTTPLocationConfig`
- RPC`rpc findEnabledHTTPLocationConfig (FindEnabledHTTPLocationConfigRequest) returns (FindEnabledHTTPLocationConfigResponse);`
**请求对象 (`FindEnabledHTTPLocationConfigRequest`)**
```json
{
"locationId": "int64"
}
```
**响应对象 (`FindEnabledHTTPLocationConfigResponse`)**
```json
{
"locationJSON": "bytes"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/HTTPLocationService/findEnabledHTTPLocationConfig" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## updateHTTPLocation
> 修改路径规则
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/HTTPLocationService/updateHTTPLocation`
- RPC`rpc updateHTTPLocation (UpdateHTTPLocationRequest) returns (RPCSuccess);`
**请求对象 (`UpdateHTTPLocationRequest`)**
```json
{
"locationId": "int64",
"name": "string // 名称",
"description": "string // 描述(备注)",
"pattern": "string",
"isOn": "bool // 是否启用",
"isBreak": "bool",
"condsJSON": "bytes",
"domains": "[]string"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/HTTPLocationService/updateHTTPLocation" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## updateHTTPLocationReverseProxy
> 修改反向代理设置
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/HTTPLocationService/updateHTTPLocationReverseProxy`
- RPC`rpc updateHTTPLocationReverseProxy (UpdateHTTPLocationReverseProxyRequest) returns (RPCSuccess);`
**请求对象 (`UpdateHTTPLocationReverseProxyRequest`)**
```json
{
"locationId": "int64",
"reverseProxyJSON": "bytes"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/HTTPLocationService/updateHTTPLocationReverseProxy" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---

View File

@@ -0,0 +1,123 @@
# HTTPPageService
> 自定义页面服务
---
## createHTTPPage
> 创建Page
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/HTTPPageService/createHTTPPage`
- RPC`rpc createHTTPPage (CreateHTTPPageRequest) returns (CreateHTTPPageResponse);`
**请求对象 (`CreateHTTPPageRequest`)**
```json
{
"statusList": "[]string // 状态码列表",
"bodyType": "string // 页面类型html|url|redirectURL",
"url": "string // 读取或者跳转的URL",
"body": "string // HTML内容",
"newStatus": "int32 // 新的状态码",
"exceptURLPatternsJSON": "bytes // 例外URL列表",
"onlyURLPatternsJSON": "bytes // 限制URL列表"
}
```
**响应对象 (`CreateHTTPPageResponse`)**
```json
{
"httpPageId": "int64"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/HTTPPageService/createHTTPPage" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findEnabledHTTPPageConfig
> 查找单个Page配置
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/HTTPPageService/findEnabledHTTPPageConfig`
- RPC`rpc findEnabledHTTPPageConfig (FindEnabledHTTPPageConfigRequest) returns (FindEnabledHTTPPageConfigResponse);`
**请求对象 (`FindEnabledHTTPPageConfigRequest`)**
```json
{
"httpPageId": "int64"
}
```
**响应对象 (`FindEnabledHTTPPageConfigResponse`)**
```json
{
"pageJSON": "bytes"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/HTTPPageService/findEnabledHTTPPageConfig" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## updateHTTPPage
> 修改Page
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/HTTPPageService/updateHTTPPage`
- RPC`rpc updateHTTPPage (UpdateHTTPPageRequest) returns (RPCSuccess);`
**请求对象 (`UpdateHTTPPageRequest`)**
```json
{
"httpPageId": "int64",
"statusList": "[]string",
"bodyType": "string // 页面类型html|url|redirectURL",
"url": "string",
"body": "string",
"newStatus": "int32",
"exceptURLPatternsJSON": "bytes // 例外URL列表",
"onlyURLPatternsJSON": "bytes // 限制URL列表"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/HTTPPageService/updateHTTPPage" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---

View File

@@ -0,0 +1,91 @@
# HTTPRewriteRuleService
> 重写规则服务
---
## createHTTPRewriteRule
> 创建重写规则
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/HTTPRewriteRuleService/createHTTPRewriteRule`
- RPC`rpc createHTTPRewriteRule (CreateHTTPRewriteRuleRequest) returns (CreateHTTPRewriteRuleResponse);`
**请求对象 (`CreateHTTPRewriteRuleRequest`)**
```json
{
"pattern": "string",
"replace": "string",
"mode": "string",
"redirectStatus": "int32",
"isBreak": "bool",
"proxyHost": "string",
"isOn": "bool // 是否启用",
"withQuery": "bool",
"condsJSON": "bytes"
}
```
**响应对象 (`CreateHTTPRewriteRuleResponse`)**
```json
{
"rewriteRuleId": "int64"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/HTTPRewriteRuleService/createHTTPRewriteRule" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## updateHTTPRewriteRule
> 修改重写规则
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/HTTPRewriteRuleService/updateHTTPRewriteRule`
- RPC`rpc updateHTTPRewriteRule (UpdateHTTPRewriteRuleRequest) returns (RPCSuccess);`
**请求对象 (`UpdateHTTPRewriteRuleRequest`)**
```json
{
"rewriteRuleId": "int64",
"pattern": "string",
"replace": "string",
"mode": "string",
"redirectStatus": "int32",
"isBreak": "bool",
"proxyHost": "string",
"isOn": "bool // 是否启用",
"withQuery": "bool",
"condsJSON": "bytes"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/HTTPRewriteRuleService/updateHTTPRewriteRule" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,83 @@
# HTTPWebsocketService
> HTTP Websocket管理服务
---
## createHTTPWebsocket
> 创建Websocket配置
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/HTTPWebsocketService/createHTTPWebsocket`
- RPC`rpc createHTTPWebsocket (CreateHTTPWebsocketRequest) returns (CreateHTTPWebsocketResponse);`
**请求对象 (`CreateHTTPWebsocketRequest`)**
```json
{
"handshakeTimeoutJSON": "bytes",
"allowAllOrigins": "bool",
"allowedOrigins": "[]string",
"requestSameOrigin": "bool",
"requestOrigin": "string"
}
```
**响应对象 (`CreateHTTPWebsocketResponse`)**
```json
{
"websocketId": "int64"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/HTTPWebsocketService/createHTTPWebsocket" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## updateHTTPWebsocket
> 修改Websocket配置
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/HTTPWebsocketService/updateHTTPWebsocket`
- RPC`rpc updateHTTPWebsocket (UpdateHTTPWebsocketRequest) returns (RPCSuccess);`
**请求对象 (`UpdateHTTPWebsocketRequest`)**
```json
{
"websocketId": "int64",
"handshakeTimeoutJSON": "bytes",
"allowAllOrigins": "bool",
"allowedOrigins": "[]string",
"requestSameOrigin": "bool",
"requestOrigin": "string"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/HTTPWebsocketService/updateHTTPWebsocket" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---

View File

@@ -0,0 +1,653 @@
# IPItemService
> IP条目管理
---
## checkIPItemStatus
> 检查IP状态
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/IPItemService/checkIPItemStatus`
- RPC`rpc checkIPItemStatus (CheckIPItemStatusRequest) returns (CheckIPItemStatusResponse);`
**请求对象 (`CheckIPItemStatusRequest`)**
```json
{
"ipListId": "int64",
"ip": "string"
}
```
**响应对象 (`CheckIPItemStatusResponse`)**
```json
{
"isOk": "bool // 是否查询成功",
"error": "string",
"isFound": "bool // 是否找到",
"isAllowed": "bool // 是否允许",
"ipItem": "IPItem // 匹配的IPItem"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/IPItemService/checkIPItemStatus" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## countAllEnabledIPItems
> 计算所有IP数量
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/IPItemService/countAllEnabledIPItems`
- RPC`rpc countAllEnabledIPItems(CountAllEnabledIPItemsRequest) returns (RPCCountResponse);`
**请求对象 (`CountAllEnabledIPItemsRequest`)**
```json
{
"keyword": "string // 关键词",
"ip": "string // 单个IP搜索单个IP时需要",
"globalOnly": "bool // 是否为自动添加的IP",
"unread": "bool // 是否未读",
"eventLevel": "string // 事件级别",
"listType": "string // 列表类型black|white",
"userId": "int64 // 用户ID只有管理员才有权限指定用户ID"
}
```
**响应对象 (`RPCCountResponse`)**
```json
{
"count": "int64 // 数量"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/IPItemService/countAllEnabledIPItems" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## countIPItemsWithListId
> 计算IP数量
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/IPItemService/countIPItemsWithListId`
- RPC`rpc countIPItemsWithListId (CountIPItemsWithListIdRequest) returns (RPCCountResponse);`
**请求对象 (`CountIPItemsWithListIdRequest`)**
```json
{
"ipListId": "int64",
"keyword": "string // 关键词",
"ipFrom": "string",
"ipTo": "string",
"eventLevel": "string"
}
```
**响应对象 (`RPCCountResponse`)**
```json
{
"count": "int64 // 数量"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/IPItemService/countIPItemsWithListId" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## createIPItem
> 创建IP
- 角色:`dns`, `user`, `node`, `admin`
- HTTP`POST https://backend.dooki.cloud/IPItemService/createIPItem`
- RPC`rpc createIPItem (CreateIPItemRequest) returns (CreateIPItemResponse);`
**请求对象 (`CreateIPItemRequest`)**
```json
{
"ipListId": "int64 // 所属IP列表ID",
"value": "string // IP原始值比如单个IP、IP范围或者CIDR指定了原始值后无需设置ipFrom和ipTo两个参数",
"ipFrom": "string // 开始IP",
"ipTo": "string // 结束IP可选",
"expiredAt": "int64 // 过期时间戳(可选)",
"reason": "string // 加入理由(可选)",
"type": "string // IP类型值为ipv4或ipv6",
"eventLevel": "string // 级别debug, notice, warning, error, critical, fatal",
"nodeId": "int64 // 可选项所属节点ID",
"serverId": "int64 // 可选项所属网站ID",
"sourceNodeId": "int64 // 可选项,来源节点",
"sourceServerId": "int64 // 可选项来源网站ID",
"sourceHTTPFirewallPolicyId": "int64 // 可选项来源WAF策略ID",
"sourceHTTPFirewallRuleGroupId": "int64 // 可选项来源WAF规则分组ID",
"sourceHTTPFirewallRuleSetId": "int64 // 可选项来源WAF规则集ID"
}
```
**响应对象 (`CreateIPItemResponse`)**
```json
{
"ipItemId": "int64"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/IPItemService/createIPItem" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## createIPItems
> 创建一组IP
- 角色:`dns`, `user`, `node`, `admin`
- HTTP`POST https://backend.dooki.cloud/IPItemService/createIPItems`
- RPC`rpc createIPItems(CreateIPItemsRequest) returns (CreateIPItemsResponse);`
**请求对象 (`CreateIPItemsRequest`)**
```json
{
"ipItems": "[]IPItem // 要创建的IP列表",
"ipListId": "int64 // IP列表ID",
"value": "string // IP原始值比如单个IP、IP范围或者CIDR指定了原始值后无需设置ipFrom和ipTo两个参数",
"ipFrom": "string // 开始IP",
"ipTo": "string // 结束IP可选",
"expiredAt": "int64 // 过期时间戳(可选)",
"reason": "string // 加入理由(可选)",
"type": "string // 类型",
"eventLevel": "string // 级别",
"nodeId": "int64 // 所属节点ID",
"serverId": "int64 // 所属服务ID",
"sourceNodeId": "int64",
"sourceServerId": "int64",
"sourceHTTPFirewallPolicyId": "int64",
"sourceHTTPFirewallRuleGroupId": "int64",
"sourceHTTPFirewallRuleSetId": "int64"
}
```
**响应对象 (`CreateIPItemsResponse`)**
```json
{
"ipItemIds": "[]int64 // 创建后的IP ID列表"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/IPItemService/createIPItems" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## deleteIPItem
> 删除IP
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/IPItemService/deleteIPItem`
- RPC`rpc deleteIPItem (DeleteIPItemRequest) returns (RPCSuccess);`
**请求对象 (`DeleteIPItemRequest`)**
```json
{
"ipItemId": "int64 // IP条目的ID",
"value": "string // IP原始值比如单个IP、IP范围或者CIDR指定了原始值后无需设置ipFrom和ipTo两个参数",
"ipFrom": "string // v0.4.8新增开始IP和ipItemId二选一",
"ipTo": "string // v0.4.8新增结束IP和ipItemId二选一",
"ipListId": "int64 // v0.4.8新增IP列表IP所在的IP列表如果不指定则会删除所有IP列表中的相关IP信息"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/IPItemService/deleteIPItem" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## deleteIPItems
> 批量删除IP
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/IPItemService/deleteIPItems`
- RPC`rpc deleteIPItems(DeleteIPItemsRequest) returns (RPCSuccess);`
**请求对象 (`DeleteIPItemsRequest`)**
```json
{
"ipItemIds": "[]int64"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/IPItemService/deleteIPItems" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## existsEnabledIPItem
> 检查IP是否存在
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/IPItemService/existsEnabledIPItem`
- RPC`rpc existsEnabledIPItem (ExistsEnabledIPItemRequest) returns (ExistsEnabledIPItemResponse);`
**请求对象 (`ExistsEnabledIPItemRequest`)**
```json
{
"ipItemId": "int64"
}
```
**响应对象 (`ExistsEnabledIPItemResponse`)**
```json
{
"exists": "bool"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/IPItemService/existsEnabledIPItem" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findEnabledIPItem
> 查找单个IP
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/IPItemService/findEnabledIPItem`
- RPC`rpc findEnabledIPItem (FindEnabledIPItemRequest) returns (FindEnabledIPItemResponse);`
**请求对象 (`FindEnabledIPItemRequest`)**
```json
{
"ipItemId": "int64"
}
```
**响应对象 (`FindEnabledIPItemResponse`)**
```json
{
"ipItem": "IPItem"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/IPItemService/findEnabledIPItem" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findServerIdWithIPItemId
> 查找IP对应的名单所属网站ID
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/IPItemService/findServerIdWithIPItemId`
- RPC`rpc findServerIdWithIPItemId(FindServerIdWithIPItemIdRequest) returns (FindServerIdWithIPItemIdResponse);`
**请求对象 (`FindServerIdWithIPItemIdRequest`)**
```json
{
"ipItemId": "int64 // IP ID"
}
```
**响应对象 (`FindServerIdWithIPItemIdResponse`)**
```json
{
"serverId": "int64 // 网站ID"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/IPItemService/findServerIdWithIPItemId" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## listAllEnabledIPItems
> 列出所有名单中的IP
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/IPItemService/listAllEnabledIPItems`
- RPC`rpc listAllEnabledIPItems(ListAllEnabledIPItemsRequest) returns (ListAllEnabledIPItemsResponse);`
**请求对象 (`ListAllEnabledIPItemsRequest`)**
```json
{
"keyword": "string // 关键词",
"ip": "string // 单个IP搜索单个IP时需要",
"globalOnly": "bool // 是否为自动添加的IP",
"unread": "bool // 是否未读",
"eventLevel": "string // 事件级别",
"listType": "string // 列表类型black|white",
"userId": "int64 // 用户ID只有管理员才有权限指定用户ID",
"offset": "int64 // 读取位置从0开始",
"size": "int64 // 每次读取数量"
}
```
**响应对象 (`ListAllEnabledIPItemsResponse`)**
```json
{
"results": "[]Result",
"ipList": "IPList // 所属名单",
"ipItem": "IPItem // IP信息",
"server": "Server // 所属服务",
"httpFirewallPolicy": "HTTPFirewallPolicy // 所属WAF策略"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/IPItemService/listAllEnabledIPItems" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## listAllIPItemIds
> 列出所有名单中的IP ID
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/IPItemService/listAllIPItemIds`
- RPC`rpc listAllIPItemIds(ListAllIPItemIdsRequest) returns (ListAllIPItemIdsResponse);`
**请求对象 (`ListAllIPItemIdsRequest`)**
```json
{
"keyword": "string // 关键词",
"ip": "string // 单个IP搜索单个IP时需要",
"globalOnly": "bool // 是否为自动添加的IP",
"unread": "bool // 是否未读",
"eventLevel": "string // 事件级别",
"listType": "string // 列表类型black|white",
"userId": "int64 // 用户ID只有管理员才有权限指定用户ID",
"offset": "int64 // 读取位置从0开始",
"size": "int64 // 每次读取数量"
}
```
**响应对象 (`ListAllIPItemIdsResponse`)**
```json
{
"ipItemIds": "[]int64 // IP ID列表"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/IPItemService/listAllIPItemIds" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## listIPItemsAfterVersion
> 根据版本列出一组IP
- 角色:`node`, `admin`
- HTTP`POST https://backend.dooki.cloud/IPItemService/listIPItemsAfterVersion`
- RPC`rpc listIPItemsAfterVersion (ListIPItemsAfterVersionRequest) returns (ListIPItemsAfterVersionResponse);`
**请求对象 (`ListIPItemsAfterVersionRequest`)**
```json
{
"version": "int64 // 版本号",
"size": "int64 // 数量"
}
```
**响应对象 (`ListIPItemsAfterVersionResponse`)**
```json
{
"ipItems": "[]IPItem",
"version": "int64 // 新的版本号"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/IPItemService/listIPItemsAfterVersion" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## listIPItemsWithListId
> 列出单页的IP
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/IPItemService/listIPItemsWithListId`
- RPC`rpc listIPItemsWithListId (ListIPItemsWithListIdRequest) returns (ListIPItemsWithListIdResponse);`
**请求对象 (`ListIPItemsWithListIdRequest`)**
```json
{
"ipListId": "int64",
"keyword": "string // 关键词",
"ipFrom": "string",
"ipTo": "string",
"eventLevel": "string",
"offset": "int64 // 读取位置",
"size": "int64 // 数量通常不能小于0"
}
```
**响应对象 (`ListIPItemsWithListIdResponse`)**
```json
{
"ipItems": "[]IPItem"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/IPItemService/listIPItemsWithListId" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## updateIPItem
> 修改IP
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/IPItemService/updateIPItem`
- RPC`rpc updateIPItem (UpdateIPItemRequest) returns (RPCSuccess);`
**请求对象 (`UpdateIPItemRequest`)**
```json
{
"ipItemId": "int64",
"value": "string // IP原始值比如单个IP、IP范围或者CIDR指定了原始值后无需设置ipFrom和ipTo两个参数",
"ipFrom": "string // 开始IP",
"ipTo": "string // 结束IP可选",
"expiredAt": "int64",
"reason": "string",
"type": "string // 类型",
"eventLevel": "string // 级别"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/IPItemService/updateIPItem" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## updateIPItemsRead
> 设置所有为已读
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/IPItemService/updateIPItemsRead`
- RPC`rpc updateIPItemsRead(UpdateIPItemsReadRequest) returns (RPCSuccess);`
**请求对象 (`UpdateIPItemsReadRequest`)**
```json
{}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/IPItemService/updateIPItemsRead" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---

View File

@@ -0,0 +1,319 @@
# IPLibraryArtifactService
> IP库制品
---
## createIPLibraryArtifact
> 创建制品
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/IPLibraryArtifactService/createIPLibraryArtifact`
- RPC`rpc createIPLibraryArtifact(CreateIPLibraryArtifactRequest) returns (CreateIPLibraryArtifactResponse);`
**请求对象 (`CreateIPLibraryArtifactRequest`)**
```json
{
"fileId": "int64 // 文件ID",
"metaJSON": "bytes",
"name": "string // 名称",
"type": "string"
}
```
**响应对象 (`CreateIPLibraryArtifactResponse`)**
```json
{
"ipLibraryArtifactId": "int64"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/IPLibraryArtifactService/createIPLibraryArtifact" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## deleteIPLibraryArtifact
> 删除制品
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/IPLibraryArtifactService/deleteIPLibraryArtifact`
- RPC`rpc deleteIPLibraryArtifact(DeleteIPLibraryArtifactRequest) returns (RPCSuccess);`
**请求对象 (`DeleteIPLibraryArtifactRequest`)**
```json
{
"ipLibraryArtifactId": "int64"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/IPLibraryArtifactService/deleteIPLibraryArtifact" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## deleteRiskIPArtifact
> 删除风险IP制品
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/IPLibraryArtifactService/deleteRiskIPArtifact`
- RPC`rpc deleteRiskIPArtifact(DeleteIPLibraryArtifactRequest) returns (RPCSuccess);`
**请求对象 (`DeleteIPLibraryArtifactRequest`)**
```json
{
"ipLibraryArtifactId": "int64"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/IPLibraryArtifactService/deleteRiskIPArtifact" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findAllIPLibraryArtifacts
> 查询所有制品
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/IPLibraryArtifactService/findAllIPLibraryArtifacts`
- RPC`rpc findAllIPLibraryArtifacts(FindAllIPLibraryArtifactsRequest) returns (FindAllIPLibraryArtifactsResponse);`
**请求对象 (`FindAllIPLibraryArtifactsRequest`)**
```json
{}
```
**响应对象 (`FindAllIPLibraryArtifactsResponse`)**
```json
{
"ipLibraryArtifacts": "[]IPLibraryArtifact"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/IPLibraryArtifactService/findAllIPLibraryArtifacts" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findIPLibraryArtifact
> 查找单个制品信息
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/IPLibraryArtifactService/findIPLibraryArtifact`
- RPC`rpc findIPLibraryArtifact(FindIPLibraryArtifactRequest) returns (FindIPLibraryArtifactResponse);`
**请求对象 (`FindIPLibraryArtifactRequest`)**
```json
{
"ipLibraryArtifactId": "int64"
}
```
**响应对象 (`FindIPLibraryArtifactResponse`)**
```json
{
"ipLibraryArtifact": "IPLibraryArtifact"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/IPLibraryArtifactService/findIPLibraryArtifact" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findPublicIPLibraryArtifact
> 查找当前正在使用的制品
- 角色:`dns`, `node`, `admin`
- HTTP`POST https://backend.dooki.cloud/IPLibraryArtifactService/findPublicIPLibraryArtifact`
- RPC`rpc findPublicIPLibraryArtifact(FindPublicIPLibraryArtifactRequest) returns (FindPublicIPLibraryArtifactResponse);`
**请求对象 (`FindPublicIPLibraryArtifactRequest`)**
```json
{}
```
**响应对象 (`FindPublicIPLibraryArtifactResponse`)**
```json
{
"ipLibraryArtifact": "IPLibraryArtifact"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/IPLibraryArtifactService/findPublicIPLibraryArtifact" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findRiskIPPublicArtifact
> 查找当前正在使用的风险IP制品
- 角色:`dns`, `node`, `admin`
- HTTP`POST https://backend.dooki.cloud/IPLibraryArtifactService/findRiskIPPublicArtifact`
- RPC`rpc findRiskIPPublicArtifact(FindPublicIPLibraryArtifactRequest) returns (FindPublicIPLibraryArtifactResponse);`
**请求对象 (`FindPublicIPLibraryArtifactRequest`)**
```json
{}
```
**响应对象 (`FindPublicIPLibraryArtifactResponse`)**
```json
{
"ipLibraryArtifact": "IPLibraryArtifact"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/IPLibraryArtifactService/findRiskIPPublicArtifact" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## updateIPLibraryArtifactIsPublic
> 使用/取消使用制品
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/IPLibraryArtifactService/updateIPLibraryArtifactIsPublic`
- RPC`rpc updateIPLibraryArtifactIsPublic(UpdateIPLibraryArtifactIsPublicRequest) returns (RPCSuccess);`
**请求对象 (`UpdateIPLibraryArtifactIsPublicRequest`)**
```json
{
"ipLibraryArtifactId": "int64",
"isPublic": "bool"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/IPLibraryArtifactService/updateIPLibraryArtifactIsPublic" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## updateRiskIPArtifactIsPublic
> 使用/取消风险IP制品
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/IPLibraryArtifactService/updateRiskIPArtifactIsPublic`
- RPC`rpc updateRiskIPArtifactIsPublic(UpdateIPLibraryArtifactIsPublicRequest) returns (RPCSuccess);`
**请求对象 (`UpdateIPLibraryArtifactIsPublicRequest`)**
```json
{
"ipLibraryArtifactId": "int64",
"isPublic": "bool"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/IPLibraryArtifactService/updateRiskIPArtifactIsPublic" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---

View File

@@ -0,0 +1,451 @@
# IPLibraryFileService
> IP库文件管理
---
## checkCitiesWithIPLibraryFileId
> 检查城市/市
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/IPLibraryFileService/checkCitiesWithIPLibraryFileId`
- RPC`rpc checkCitiesWithIPLibraryFileId(CheckCitiesWithIPLibraryFileIdRequest) returns (CheckCitiesWithIPLibraryFileIdResponse);`
**请求对象 (`CheckCitiesWithIPLibraryFileIdRequest`)**
```json
{
"ipLibraryFileId": "int64"
}
```
**响应对象 (`CheckCitiesWithIPLibraryFileIdResponse`)**
```json
{
"missingCities": "[]MissingCity",
"countryName": "string",
"provinceName": "string",
"cityName": "string",
"similarCities": "[]RegionCity"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/IPLibraryFileService/checkCitiesWithIPLibraryFileId" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## checkCountriesWithIPLibraryFileId
> 检查国家/地区
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/IPLibraryFileService/checkCountriesWithIPLibraryFileId`
- RPC`rpc checkCountriesWithIPLibraryFileId(CheckCountriesWithIPLibraryFileIdRequest) returns (CheckCountriesWithIPLibraryFileIdResponse);`
**请求对象 (`CheckCountriesWithIPLibraryFileIdRequest`)**
```json
{
"ipLibraryFileId": "int64"
}
```
**响应对象 (`CheckCountriesWithIPLibraryFileIdResponse`)**
```json
{
"missingCountries": "[]MissingCountry",
"countryName": "string",
"similarCountries": "[]RegionCountry"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/IPLibraryFileService/checkCountriesWithIPLibraryFileId" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## checkProvidersWithIPLibraryFileId
> 检查ISP运营商
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/IPLibraryFileService/checkProvidersWithIPLibraryFileId`
- RPC`rpc checkProvidersWithIPLibraryFileId(CheckProvidersWithIPLibraryFileIdRequest) returns (CheckProvidersWithIPLibraryFileIdResponse);`
**请求对象 (`CheckProvidersWithIPLibraryFileIdRequest`)**
```json
{
"ipLibraryFileId": "int64"
}
```
**响应对象 (`CheckProvidersWithIPLibraryFileIdResponse`)**
```json
{
"missingProviders": "[]MissingProvider",
"providerName": "string",
"similarProviders": "[]RegionProvider"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/IPLibraryFileService/checkProvidersWithIPLibraryFileId" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## checkProvincesWithIPLibraryFileId
> 检查省份/州
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/IPLibraryFileService/checkProvincesWithIPLibraryFileId`
- RPC`rpc checkProvincesWithIPLibraryFileId(CheckProvincesWithIPLibraryFileIdRequest) returns (CheckProvincesWithIPLibraryFileIdResponse);`
**请求对象 (`CheckProvincesWithIPLibraryFileIdRequest`)**
```json
{
"ipLibraryFileId": "int64"
}
```
**响应对象 (`CheckProvincesWithIPLibraryFileIdResponse`)**
```json
{
"missingProvinces": "[]MissingProvince",
"countryName": "string",
"provinceName": "string",
"similarProvinces": "[]RegionProvince"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/IPLibraryFileService/checkProvincesWithIPLibraryFileId" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## checkTownsWithIPLibraryFileId
> 检查区县
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/IPLibraryFileService/checkTownsWithIPLibraryFileId`
- RPC`rpc checkTownsWithIPLibraryFileId(CheckTownsWithIPLibraryFileIdRequest) returns (CheckTownsWithIPLibraryFileIdResponse);`
**请求对象 (`CheckTownsWithIPLibraryFileIdRequest`)**
```json
{
"ipLibraryFileId": "int64"
}
```
**响应对象 (`CheckTownsWithIPLibraryFileIdResponse`)**
```json
{
"missingTowns": "[]MissingTown",
"countryName": "string",
"provinceName": "string",
"cityName": "string",
"townName": "string",
"similarTowns": "[]RegionTown"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/IPLibraryFileService/checkTownsWithIPLibraryFileId" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## createIPLibraryFile
> 创建IP库文件
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/IPLibraryFileService/createIPLibraryFile`
- RPC`rpc createIPLibraryFile(CreateIPLibraryFileRequest) returns (CreateIPLibraryFileResponse);`
**请求对象 (`CreateIPLibraryFileRequest`)**
```json
{
"name": "string // 名称",
"template": "string",
"emptyValues": "[]string",
"fileId": "int64 // 文件ID",
"countriesJSON": "bytes",
"provincesJSON": "bytes",
"citiesJSON": "bytes",
"townsJSON": "bytes",
"providersJSON": "bytes",
"password": "string // 密码"
}
```
**响应对象 (`CreateIPLibraryFileResponse`)**
```json
{
"ipLibraryFileId": "int64"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/IPLibraryFileService/createIPLibraryFile" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## deleteIPLibraryFile
> 删除IP库文件
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/IPLibraryFileService/deleteIPLibraryFile`
- RPC`rpc deleteIPLibraryFile(DeleteIPLibraryFileRequest) returns (RPCSuccess);`
**请求对象 (`DeleteIPLibraryFileRequest`)**
```json
{
"ipLibraryFileId": "int64"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/IPLibraryFileService/deleteIPLibraryFile" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findAllFinishedIPLibraryFiles
> 查找所有已完成的IP库文件
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/IPLibraryFileService/findAllFinishedIPLibraryFiles`
- RPC`rpc findAllFinishedIPLibraryFiles(FindAllFinishedIPLibraryFilesRequest) returns (FindAllFinishedIPLibraryFilesResponse);`
**请求对象 (`FindAllFinishedIPLibraryFilesRequest`)**
```json
{}
```
**响应对象 (`FindAllFinishedIPLibraryFilesResponse`)**
```json
{
"ipLibraryFiles": "[]IPLibraryFile"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/IPLibraryFileService/findAllFinishedIPLibraryFiles" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findAllUnfinishedIPLibraryFiles
> 查找所有未完成的IP库文件
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/IPLibraryFileService/findAllUnfinishedIPLibraryFiles`
- RPC`rpc findAllUnfinishedIPLibraryFiles(FindAllUnfinishedIPLibraryFilesRequest) returns (FindAllUnfinishedIPLibraryFilesResponse);`
**请求对象 (`FindAllUnfinishedIPLibraryFilesRequest`)**
```json
{}
```
**响应对象 (`FindAllUnfinishedIPLibraryFilesResponse`)**
```json
{
"ipLibraryFiles": "[]IPLibraryFile"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/IPLibraryFileService/findAllUnfinishedIPLibraryFiles" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findIPLibraryFile
> 查找单个IP库文件
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/IPLibraryFileService/findIPLibraryFile`
- RPC`rpc findIPLibraryFile(FindIPLibraryFileRequest) returns (FindIPLibraryFileResponse);`
**请求对象 (`FindIPLibraryFileRequest`)**
```json
{
"ipLibraryFileId": "int64"
}
```
**响应对象 (`FindIPLibraryFileResponse`)**
```json
{
"ipLibraryFile": "IPLibraryFile"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/IPLibraryFileService/findIPLibraryFile" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## generateIPLibraryFile
> 生成IP库文件
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/IPLibraryFileService/generateIPLibraryFile`
- RPC`rpc generateIPLibraryFile(GenerateIPLibraryFileRequest) returns (RPCSuccess);`
**请求对象 (`GenerateIPLibraryFileRequest`)**
```json
{
"ipLibraryFileId": "int64"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/IPLibraryFileService/generateIPLibraryFile" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## updateIPLibraryFileFinished
> 设置某个IP库为已完成
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/IPLibraryFileService/updateIPLibraryFileFinished`
- RPC`rpc updateIPLibraryFileFinished(UpdateIPLibraryFileFinishedRequest) returns (RPCSuccess);`
**请求对象 (`UpdateIPLibraryFileFinishedRequest`)**
```json
{
"ipLibraryFileId": "int64"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/IPLibraryFileService/updateIPLibraryFileFinished" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---

View File

@@ -0,0 +1,135 @@
# IPLibraryService
> IP库
---
## createIPLibrary
> 创建IP库
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/IPLibraryService/createIPLibrary`
- RPC`rpc createIPLibrary (CreateIPLibraryRequest) returns (CreateIPLibraryResponse) {
option deprecated = true;
};
// 查找最新的IP库
rpc findLatestIPLibraryWithType (FindLatestIPLibraryWithTypeRequest) returns (FindLatestIPLibraryWithTypeResponse) {
option deprecated = true;
};
// 查找单个IP库
rpc findEnabledIPLibrary (FindEnabledIPLibraryRequest) returns (FindEnabledIPLibraryResponse) {
option deprecated = true;
};
// 列出某个类型的所有IP库
rpc findAllEnabledIPLibrariesWithType (FindAllEnabledIPLibrariesWithTypeRequest) returns (FindAllEnabledIPLibrariesWithTypeResponse) {
option deprecated = true;
};
// 删除IP库
rpc deleteIPLibrary (DeleteIPLibraryRequest) returns (RPCSuccess) {
option deprecated = true;
};`
**请求对象 (`CreateIPLibraryRequest`)**
```json
{
"type": "string",
"fileId": "int64 // 文件ID"
}
```
**响应对象 (`CreateIPLibraryResponse`)**
```json
{
"ipLibraryId": "int64"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/IPLibraryService/createIPLibrary" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## lookupIPRegion
> 查询某个IP信息
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/IPLibraryService/lookupIPRegion`
- RPC`rpc lookupIPRegion (LookupIPRegionRequest) returns (LookupIPRegionResponse);`
**请求对象 (`LookupIPRegionRequest`)**
```json
{
"ip": "string"
}
```
**响应对象 (`LookupIPRegionResponse`)**
```json
{
"ipRegion": "IPRegion"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/IPLibraryService/lookupIPRegion" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## lookupIPRegions
> 查询一组IP信息
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/IPLibraryService/lookupIPRegions`
- RPC`rpc lookupIPRegions (LookupIPRegionsRequest) returns (LookupIPRegionsResponse);`
**请求对象 (`LookupIPRegionsRequest`)**
```json
{
"ipList": "[]string"
}
```
**响应对象 (`LookupIPRegionsResponse`)**
```json
{
"ipRegionMap": "map"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/IPLibraryService/lookupIPRegions" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---

View File

@@ -0,0 +1,377 @@
# IPListService
> IP列表
---
## countAllEnabledIPLists
> 计算名单数量
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/IPListService/countAllEnabledIPLists`
- RPC`rpc countAllEnabledIPLists (CountAllEnabledIPListsRequest) returns (RPCCountResponse);`
**请求对象 (`CountAllEnabledIPListsRequest`)**
```json
{
"type": "string",
"isPublic": "bool",
"keyword": "string // 关键词"
}
```
**响应对象 (`RPCCountResponse`)**
```json
{
"count": "int64 // 数量"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/IPListService/countAllEnabledIPLists" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## createIPList
> 创建IP列表
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/IPListService/createIPList`
- RPC`rpc createIPList (CreateIPListRequest) returns (CreateIPListResponse);`
**请求对象 (`CreateIPListRequest`)**
```json
{
"type": "string",
"name": "string // 名称",
"code": "string",
"timeoutJSON": "bytes",
"isPublic": "bool",
"description": "string // 描述(备注)",
"isGlobal": "bool",
"serverId": "int64 // 服务ID网站ID"
}
```
**响应对象 (`CreateIPListResponse`)**
```json
{
"ipListId": "int64"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/IPListService/createIPList" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## deleteIPList
> 删除IP名单
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/IPListService/deleteIPList`
- RPC`rpc deleteIPList (DeleteIPListRequest) returns (RPCSuccess);`
**请求对象 (`DeleteIPListRequest`)**
```json
{
"ipListId": "int64"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/IPListService/deleteIPList" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## existsEnabledIPList
> 检查IPList是否存在
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/IPListService/existsEnabledIPList`
- RPC`rpc existsEnabledIPList (ExistsEnabledIPListRequest) returns (ExistsEnabledIPListResponse);`
**请求对象 (`ExistsEnabledIPListRequest`)**
```json
{
"ipListId": "int64"
}
```
**响应对象 (`ExistsEnabledIPListResponse`)**
```json
{
"exists": "bool"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/IPListService/existsEnabledIPList" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findEnabledIPList
> 查找IP列表信息
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/IPListService/findEnabledIPList`
- RPC`rpc findEnabledIPList (FindEnabledIPListRequest) returns (FindEnabledIPListResponse);`
**请求对象 (`FindEnabledIPListRequest`)**
```json
{
"ipListId": "int64"
}
```
**响应对象 (`FindEnabledIPListResponse`)**
```json
{
"ipList": "IPList"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/IPListService/findEnabledIPList" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findEnabledIPListContainsIP
> 根据IP来搜索IP名单
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/IPListService/findEnabledIPListContainsIP`
- RPC`rpc findEnabledIPListContainsIP(FindEnabledIPListContainsIPRequest) returns (FindEnabledIPListContainsIPResponse);`
**请求对象 (`FindEnabledIPListContainsIPRequest`)**
```json
{
"ip": "string"
}
```
**响应对象 (`FindEnabledIPListContainsIPResponse`)**
```json
{
"ipLists": "[]IPList"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/IPListService/findEnabledIPListContainsIP" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findIPListIdWithCode
> 根据IP名单代号获取IP名单ID
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/IPListService/findIPListIdWithCode`
- RPC`rpc findIPListIdWithCode(FindIPListIdWithCodeRequest) returns (FindIPListIdWithCodeResponse);`
**请求对象 (`FindIPListIdWithCodeRequest`)**
```json
{
"code": "string // IP名单代号"
}
```
**响应对象 (`FindIPListIdWithCodeResponse`)**
```json
{
"ipListId": "int64 // IP名单ID"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/IPListService/findIPListIdWithCode" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findServerIdWithIPListId
> 查找IP名单对应的网站ID
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/IPListService/findServerIdWithIPListId`
- RPC`rpc findServerIdWithIPListId(FindServerIdWithIPListIdRequest) returns (FindServerIdWithIPListIdResponse);`
**请求对象 (`FindServerIdWithIPListIdRequest`)**
```json
{
"ipListId": "int64 // IP名单ID"
}
```
**响应对象 (`FindServerIdWithIPListIdResponse`)**
```json
{
"serverId": "int64 // 网站ID如果是公共IP名单则对应的网站ID为0"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/IPListService/findServerIdWithIPListId" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## listEnabledIPLists
> 列出单页名单
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/IPListService/listEnabledIPLists`
- RPC`rpc listEnabledIPLists (ListEnabledIPListsRequest) returns (ListEnabledIPListsResponse);`
**请求对象 (`ListEnabledIPListsRequest`)**
```json
{
"type": "string",
"isPublic": "bool",
"keyword": "string // 关键词",
"offset": "int64 // 读取位置",
"size": "int64 // 数量通常不能小于0"
}
```
**响应对象 (`ListEnabledIPListsResponse`)**
```json
{
"ipLists": "[]IPList"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/IPListService/listEnabledIPLists" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## updateIPList
> 修改IP列表
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/IPListService/updateIPList`
- RPC`rpc updateIPList (UpdateIPListRequest) returns (RPCSuccess);`
**请求对象 (`UpdateIPListRequest`)**
```json
{
"ipListId": "int64",
"name": "string // 名称",
"code": "string",
"timeoutJSON": "bytes",
"description": "string // 描述(备注)"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/IPListService/updateIPList" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---

View File

@@ -0,0 +1,39 @@
# LatestItemService
> 最近使用的条目服务
---
## increaseLatestItem
> 记录最近使用的条目
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/LatestItemService/increaseLatestItem`
- RPC`rpc increaseLatestItem (IncreaseLatestItemRequest) returns (RPCSuccess);`
**请求对象 (`IncreaseLatestItemRequest`)**
```json
{
"itemType": "string",
"itemId": "int64"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/LatestItemService/increaseLatestItem" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---

View File

@@ -0,0 +1,262 @@
# LogService
> 审计日志服务
---
## cleanLogsPermanently
> 清理
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/LogService/cleanLogsPermanently`
- RPC`rpc cleanLogsPermanently (CleanLogsPermanentlyRequest) returns (RPCSuccess);`
**请求对象 (`CleanLogsPermanentlyRequest`)**
```json
{
"days": "int32",
"clearAll": "bool"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/LogService/cleanLogsPermanently" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## countLogs
> 计算日志数量
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/LogService/countLogs`
- RPC`rpc countLogs (CountLogRequest) returns (RPCCountResponse);`
**请求对象 (`CountLogRequest`)**
```json
{
"dayFrom": "string // 可选项,开始日期",
"dayTo": "string // 可选项,结束日期",
"keyword": "string // 可选项,关键词",
"userType": "string // 可选项用户类型admin|user用户端固定为user",
"level": "string // 可选项错误级别info, warn, error"
}
```
**响应对象 (`RPCCountResponse`)**
```json
{
"count": "int64 // 数量"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/LogService/countLogs" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## createLog
> 创建日志
- 角色:`user`, `admin`
- HTTP`POST https://backend.dooki.cloud/LogService/createLog`
- RPC`rpc createLog (CreateLogRequest) returns (CreateLogResponse);`
**请求对象 (`CreateLogRequest`)**
```json
{
"level": "string // 级别info, warn, error",
"description": "string // 描述",
"action": "string // 可选项发生操作所在的页面URL",
"ip": "string // 可选项操作用户IP",
"langMessageCode": "string // 多语言消息",
"langMessageArgsJSON": "bytes // 多语言消息中的参数项,格式:[arg1, arg2, ...]"
}
```
**响应对象 (`CreateLogResponse`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/LogService/createLog" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## deleteLogPermanently
> 删除单条
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/LogService/deleteLogPermanently`
- RPC`rpc deleteLogPermanently (DeleteLogPermanentlyRequest) returns (RPCSuccess);`
**请求对象 (`DeleteLogPermanentlyRequest`)**
```json
{
"logId": "int64"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/LogService/deleteLogPermanently" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## deleteLogsPermanently
> 批量删除
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/LogService/deleteLogsPermanently`
- RPC`rpc deleteLogsPermanently (DeleteLogsPermanentlyRequest) returns (RPCSuccess);`
**请求对象 (`DeleteLogsPermanentlyRequest`)**
```json
{
"logIds": "[]int64"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/LogService/deleteLogsPermanently" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## listLogs
> 列出单页日志
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/LogService/listLogs`
- RPC`rpc listLogs (ListLogsRequest) returns (ListLogsResponse);`
**请求对象 (`ListLogsRequest`)**
```json
{
"offset": "int64 // 读取位置从0开始",
"size": "int64 // 读取数量",
"dayFrom": "string // 可选项,开始日期",
"dayTo": "string // 可选项,结束日期",
"keyword": "string // 可选项,关键词",
"userType": "string // 可选项用户类型admin|user用户端固定为user",
"level": "string // 可选项错误级别info, warn, error"
}
```
**响应对象 (`ListLogsResponse`)**
```json
{
"logs": "[]Log"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/LogService/listLogs" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## sumLogsSize
> 计算日志容量大小
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/LogService/sumLogsSize`
- RPC`rpc sumLogsSize (SumLogsSizeRequest) returns (SumLogsResponse);`
**请求对象 (`SumLogsSizeRequest`)**
```json
{}
```
**响应对象 (`SumLogsResponse`)**
```json
{
"sizeBytes": "int64"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/LogService/sumLogsSize" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---

View File

@@ -0,0 +1,76 @@
# LoginService
> 认证相关服务
---
## findEnabledLogin
> 查找认证
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/LoginService/findEnabledLogin`
- RPC`rpc findEnabledLogin (FindEnabledLoginRequest) returns (FindEnabledLoginResponse);`
**请求对象 (`FindEnabledLoginRequest`)**
```json
{
"adminId": "int64 // 管理员ID",
"userId": "int64 // 用户ID",
"type": "string"
}
```
**响应对象 (`FindEnabledLoginResponse`)**
```json
{
"login": "Login"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/LoginService/findEnabledLogin" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## updateLogin
> 修改认证
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/LoginService/updateLogin`
- RPC`rpc updateLogin (UpdateLoginRequest) returns (RPCSuccess);`
**请求对象 (`UpdateLoginRequest`)**
```json
{
"login": "Login"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/LoginService/updateLogin" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---

View File

@@ -0,0 +1,145 @@
# LoginSessionService
> 登录SESSION服务
---
## clearOldLoginSessions
> 清理老的SESSION
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/LoginSessionService/clearOldLoginSessions`
- RPC`rpc clearOldLoginSessions(ClearOldLoginSessionsRequest) returns (RPCSuccess);`
**请求对象 (`ClearOldLoginSessionsRequest`)**
```json
{
"sid": "string // 当前SESSION ID",
"ip": "string // 当前操作IP"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/LoginSessionService/clearOldLoginSessions" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## deleteLoginSession
> 删除SESSION
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/LoginSessionService/deleteLoginSession`
- RPC`rpc deleteLoginSession(DeleteLoginSessionRequest) returns (RPCSuccess);`
**请求对象 (`DeleteLoginSessionRequest`)**
```json
{
"sid": "string // SESSION ID"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/LoginSessionService/deleteLoginSession" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findLoginSession
> 查找SESSION
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/LoginSessionService/findLoginSession`
- RPC`rpc findLoginSession(FindLoginSessionRequest) returns (FindLoginSessionResponse);`
**请求对象 (`FindLoginSessionRequest`)**
```json
{
"sid": "string // SESSION ID"
}
```
**响应对象 (`FindLoginSessionResponse`)**
```json
{
"loginSession": "LoginSession // SESSION信息"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/LoginSessionService/findLoginSession" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## writeLoginSessionValue
> 写入SESSION数据
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/LoginSessionService/writeLoginSessionValue`
- RPC`rpc writeLoginSessionValue(WriteLoginSessionValueRequest) returns (RPCSuccess);`
**请求对象 (`WriteLoginSessionValueRequest`)**
```json
{
"sid": "string // SESSION ID",
"key": "string // 数据Key",
"value": "string // 数据值"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/LoginSessionService/writeLoginSessionValue" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---

View File

@@ -0,0 +1,79 @@
# LoginTicketService
> 登录票据相关服务
---
## createLoginTicket
> 创建票据
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/LoginTicketService/createLoginTicket`
- RPC`rpc createLoginTicket(CreateLoginTicketRequest) returns (CreateLoginTicketResponse);`
**请求对象 (`CreateLoginTicketRequest`)**
```json
{
"adminId": "int64 // 管理员ID和用户ID二选一",
"userId": "int64 // 用户ID",
"ip": "string // 可选参数用户客户端IP"
}
```
**响应对象 (`CreateLoginTicketResponse`)**
```json
{
"value": "string // 票据值"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/LoginTicketService/createLoginTicket" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findLoginTicketWithValue
> 查找票据
查找成功后,会自动删除票据信息,所以票据信息只能查询一次
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/LoginTicketService/findLoginTicketWithValue`
- RPC`rpc findLoginTicketWithValue(FindLoginTicketWithValueRequest) returns (FindLoginTicketWithValueResponse);`
**请求对象 (`FindLoginTicketWithValueRequest`)**
```json
{
"value": "string // 票据值"
}
```
**响应对象 (`FindLoginTicketWithValueResponse`)**
```json
{
"loginTicket": "LoginTicket // 票据信息"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/LoginTicketService/findLoginTicketWithValue" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---

View File

@@ -0,0 +1,233 @@
# MessageMediaInstanceService
> 消息媒介实例
---
## countAllEnabledMessageMediaInstances
> 计算消息媒介实例数量
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/MessageMediaInstanceService/countAllEnabledMessageMediaInstances`
- RPC`rpc countAllEnabledMessageMediaInstances (CountAllEnabledMessageMediaInstancesRequest) returns (RPCCountResponse);`
**请求对象 (`CountAllEnabledMessageMediaInstancesRequest`)**
```json
{
"mediaType": "string",
"keyword": "string // 关键词"
}
```
**响应对象 (`RPCCountResponse`)**
```json
{
"count": "int64 // 数量"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/MessageMediaInstanceService/countAllEnabledMessageMediaInstances" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## createMessageMediaInstance
> 创建消息媒介实例
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/MessageMediaInstanceService/createMessageMediaInstance`
- RPC`rpc createMessageMediaInstance (CreateMessageMediaInstanceRequest) returns (CreateMessageMediaInstanceResponse);`
**请求对象 (`CreateMessageMediaInstanceRequest`)**
```json
{
"name": "string // 名称",
"mediaType": "string",
"paramsJSON": "bytes",
"groupIds": "[]int64",
"description": "string // 描述(备注)",
"rateJSON": "bytes",
"hashLife": "int32"
}
```
**响应对象 (`CreateMessageMediaInstanceResponse`)**
```json
{
"messageMediaInstanceId": "int64"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/MessageMediaInstanceService/createMessageMediaInstance" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## deleteMessageMediaInstance
> 删除消息媒介实例
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/MessageMediaInstanceService/deleteMessageMediaInstance`
- RPC`rpc deleteMessageMediaInstance (DeleteMessageMediaInstanceRequest) returns (RPCSuccess);`
**请求对象 (`DeleteMessageMediaInstanceRequest`)**
```json
{
"messageMediaInstanceId": "int64"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/MessageMediaInstanceService/deleteMessageMediaInstance" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findEnabledMessageMediaInstance
> 查找单个消息媒介实例信息
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/MessageMediaInstanceService/findEnabledMessageMediaInstance`
- RPC`rpc findEnabledMessageMediaInstance (FindEnabledMessageMediaInstanceRequest) returns (FindEnabledMessageMediaInstanceResponse);`
**请求对象 (`FindEnabledMessageMediaInstanceRequest`)**
```json
{
"messageMediaInstanceId": "int64"
}
```
**响应对象 (`FindEnabledMessageMediaInstanceResponse`)**
```json
{
"messageMediaInstance": "MessageMediaInstance"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/MessageMediaInstanceService/findEnabledMessageMediaInstance" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## listEnabledMessageMediaInstances
> 列出单页消息媒介实例
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/MessageMediaInstanceService/listEnabledMessageMediaInstances`
- RPC`rpc listEnabledMessageMediaInstances (ListEnabledMessageMediaInstancesRequest) returns (ListEnabledMessageMediaInstancesResponse);`
**请求对象 (`ListEnabledMessageMediaInstancesRequest`)**
```json
{
"mediaType": "string",
"keyword": "string // 关键词",
"offset": "int64 // 读取位置",
"size": "int64 // 数量通常不能小于0"
}
```
**响应对象 (`ListEnabledMessageMediaInstancesResponse`)**
```json
{
"messageMediaInstances": "[]MessageMediaInstance"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/MessageMediaInstanceService/listEnabledMessageMediaInstances" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## updateMessageMediaInstance
> 修改消息媒介实例
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/MessageMediaInstanceService/updateMessageMediaInstance`
- RPC`rpc updateMessageMediaInstance (UpdateMessageMediaInstanceRequest) returns (RPCSuccess);`
**请求对象 (`UpdateMessageMediaInstanceRequest`)**
```json
{
"messageMediaInstanceId": "int64",
"name": "string // 名称",
"mediaType": "string",
"paramsJSON": "bytes",
"description": "string // 描述(备注)",
"rateJSON": "bytes",
"hashLife": "int32",
"isOn": "bool // 是否启用"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/MessageMediaInstanceService/updateMessageMediaInstance" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---

View File

@@ -0,0 +1,76 @@
# MessageMediaService
> 消息媒介管理
---
## findAllMessageMedias
> 获取所有支持的媒介
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/MessageMediaService/findAllMessageMedias`
- RPC`rpc findAllMessageMedias (FindAllMessageMediasRequest) returns (FindAllMessageMediasResponse);`
**请求对象 (`FindAllMessageMediasRequest`)**
```json
{}
```
**响应对象 (`FindAllMessageMediasResponse`)**
```json
{
"messageMedias": "[]MessageMedia"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/MessageMediaService/findAllMessageMedias" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## sendMediaMessage
> 发送媒介信息
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/MessageMediaService/sendMediaMessage`
- RPC`rpc sendMediaMessage(SendMediaMessageRequest) returns (RPCSuccess);`
**请求对象 (`SendMediaMessageRequest`)**
```json
{
"mediaType": "string // 媒介类型",
"optionsJSON": "bytes // 媒介参数",
"user": "string // 接收用户",
"subject": "string // 标题",
"body": "string // 内容"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/MessageMediaService/sendMediaMessage" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---

View File

@@ -0,0 +1,193 @@
# MessageReceiverService
> 消息对象接收者设置
---
## countAllEnabledMessageReceivers
> 计算接收者数量
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/MessageReceiverService/countAllEnabledMessageReceivers`
- RPC`rpc countAllEnabledMessageReceivers (CountAllEnabledMessageReceiversRequest) returns (RPCCountResponse);`
**请求对象 (`CountAllEnabledMessageReceiversRequest`)**
```json
{
"role": "string // 集群角色node 或 dns",
"nodeClusterId": "int64 // 集群ID",
"nodeId": "int64 // 节点ID",
"serverId": "int64 // 网站ID"
}
```
**响应对象 (`RPCCountResponse`)**
```json
{
"count": "int64 // 数量"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/MessageReceiverService/countAllEnabledMessageReceivers" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## deleteMessageReceiver
> 删除接收者
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/MessageReceiverService/deleteMessageReceiver`
- RPC`rpc deleteMessageReceiver (DeleteMessageReceiverRequest) returns (RPCSuccess);`
**请求对象 (`DeleteMessageReceiverRequest`)**
```json
{
"messageReceiverId": "int64 // 接收者ID"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/MessageReceiverService/deleteMessageReceiver" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findAllEnabledMessageReceivers
> 查找接收者
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/MessageReceiverService/findAllEnabledMessageReceivers`
- RPC`rpc findAllEnabledMessageReceivers (FindAllEnabledMessageReceiversRequest) returns (FindAllEnabledMessageReceiversResponse);`
**请求对象 (`FindAllEnabledMessageReceiversRequest`)**
```json
{
"role": "string // 集群角色node 或 dns",
"nodeClusterId": "int64 // 集群ID",
"nodeId": "int64 // 节点ID",
"serverId": "int64 // 网站ID"
}
```
**响应对象 (`FindAllEnabledMessageReceiversResponse`)**
```json
{
"messageReceivers": "[]MessageReceiver"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/MessageReceiverService/findAllEnabledMessageReceivers" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findAllEnabledMessageReceiversWithMessageRecipientId
> 根据接收人查找关联的接收者
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/MessageReceiverService/findAllEnabledMessageReceiversWithMessageRecipientId`
- RPC`rpc findAllEnabledMessageReceiversWithMessageRecipientId (FindAllEnabledMessageReceiversWithMessageRecipientIdRequest) returns (FindAllEnabledMessageReceiversWithMessageRecipientIdResponse);`
**请求对象 (`FindAllEnabledMessageReceiversWithMessageRecipientIdRequest`)**
```json
{
"messageRecipientId": "int64 // 关联的接收人ID"
}
```
**响应对象 (`FindAllEnabledMessageReceiversWithMessageRecipientIdResponse`)**
```json
{
"messageReceivers": "[]MessageReceiver"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/MessageReceiverService/findAllEnabledMessageReceiversWithMessageRecipientId" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## updateMessageReceivers
> 修改接收者
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/MessageReceiverService/updateMessageReceivers`
- RPC`rpc updateMessageReceivers (UpdateMessageReceiversRequest) returns (RPCSuccess);`
**请求对象 (`UpdateMessageReceiversRequest`)**
```json
{
"role": "string",
"nodeClusterId": "int64 // 集群ID",
"nodeId": "int64 // 节点ID",
"serverId": "int64 // 服务ID网站ID",
"paramsJSON": "bytes",
"recipientOptions": "[]RecipientOption",
"messageRecipientId": "int64",
"messageRecipientGroupId": "int64"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/MessageReceiverService/updateMessageReceivers" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---

View File

@@ -0,0 +1,180 @@
# MessageRecipientGroupService
> 消息接收人分组
---
## createMessageRecipientGroup
> 创建分组
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/MessageRecipientGroupService/createMessageRecipientGroup`
- RPC`rpc createMessageRecipientGroup (CreateMessageRecipientGroupRequest) returns (CreateMessageRecipientGroupResponse);`
**请求对象 (`CreateMessageRecipientGroupRequest`)**
```json
{
"name": "string // 名称"
}
```
**响应对象 (`CreateMessageRecipientGroupResponse`)**
```json
{
"messageRecipientGroupId": "int64"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/MessageRecipientGroupService/createMessageRecipientGroup" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## deleteMessageRecipientGroup
> 删除分组
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/MessageRecipientGroupService/deleteMessageRecipientGroup`
- RPC`rpc deleteMessageRecipientGroup (DeleteMessageRecipientGroupRequest) returns (RPCSuccess);`
**请求对象 (`DeleteMessageRecipientGroupRequest`)**
```json
{
"messageRecipientGroupId": "int64"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/MessageRecipientGroupService/deleteMessageRecipientGroup" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findAllEnabledMessageRecipientGroups
> 查找所有可用的分组
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/MessageRecipientGroupService/findAllEnabledMessageRecipientGroups`
- RPC`rpc findAllEnabledMessageRecipientGroups (FindAllEnabledMessageRecipientGroupsRequest) returns (FindAllEnabledMessageRecipientGroupsResponse);`
**请求对象 (`FindAllEnabledMessageRecipientGroupsRequest`)**
```json
{}
```
**响应对象 (`FindAllEnabledMessageRecipientGroupsResponse`)**
```json
{
"messageRecipientGroups": "[]MessageRecipientGroup"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/MessageRecipientGroupService/findAllEnabledMessageRecipientGroups" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findEnabledMessageRecipientGroup
> 查找单个分组信息
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/MessageRecipientGroupService/findEnabledMessageRecipientGroup`
- RPC`rpc findEnabledMessageRecipientGroup (FindEnabledMessageRecipientGroupRequest) returns (FindEnabledMessageRecipientGroupResponse);`
**请求对象 (`FindEnabledMessageRecipientGroupRequest`)**
```json
{
"messageRecipientGroupId": "int64"
}
```
**响应对象 (`FindEnabledMessageRecipientGroupResponse`)**
```json
{
"messageRecipientGroup": "MessageRecipientGroup"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/MessageRecipientGroupService/findEnabledMessageRecipientGroup" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## updateMessageRecipientGroup
> 修改分组
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/MessageRecipientGroupService/updateMessageRecipientGroup`
- RPC`rpc updateMessageRecipientGroup (UpdateMessageRecipientGroupRequest) returns (RPCSuccess);`
**请求对象 (`UpdateMessageRecipientGroupRequest`)**
```json
{
"messageRecipientGroupId": "int64",
"name": "string // 名称",
"isOn": "bool // 是否启用"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/MessageRecipientGroupService/updateMessageRecipientGroup" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---

View File

@@ -0,0 +1,240 @@
# MessageRecipientService
> 消息接收人
---
## countAllEnabledMessageRecipients
> 计算接收人数量
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/MessageRecipientService/countAllEnabledMessageRecipients`
- RPC`rpc countAllEnabledMessageRecipients (CountAllEnabledMessageRecipientsRequest) returns (RPCCountResponse);`
**请求对象 (`CountAllEnabledMessageRecipientsRequest`)**
```json
{
"adminId": "int64 // 管理员ID",
"mediaType": "string",
"messageRecipientGroupId": "int64",
"keyword": "string // 关键词"
}
```
**响应对象 (`RPCCountResponse`)**
```json
{
"count": "int64 // 数量"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/MessageRecipientService/countAllEnabledMessageRecipients" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## createMessageRecipient
> 创建接收人
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/MessageRecipientService/createMessageRecipient`
- RPC`rpc createMessageRecipient (CreateMessageRecipientRequest) returns (CreateMessageRecipientResponse);`
**请求对象 (`CreateMessageRecipientRequest`)**
```json
{
"adminId": "int64 // 关联的管理员ID",
"messageMediaInstanceId": "int64 // 媒介实例ID",
"messageRecipientGroupIds": "[]int64 // 所属分组ID列表",
"description": "string // 可选项,备注描述",
"user": "string // 用户标识",
"timeFrom": "string // 可选项,接收消息的,开始时间",
"timeTo": "string // 可选项,接收消息的,结束时间",
"nodeClusterIds": "[]int64 // 关联的CDN边缘节点集群ID列表"
}
```
**响应对象 (`CreateMessageRecipientResponse`)**
```json
{
"messageRecipientId": "int64"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/MessageRecipientService/createMessageRecipient" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## deleteMessageRecipient
> 删除接收人
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/MessageRecipientService/deleteMessageRecipient`
- RPC`rpc deleteMessageRecipient (DeleteMessageRecipientRequest) returns (RPCSuccess);`
**请求对象 (`DeleteMessageRecipientRequest`)**
```json
{
"messageRecipientId": "int64"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/MessageRecipientService/deleteMessageRecipient" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findEnabledMessageRecipient
> 查找单个接收人信息
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/MessageRecipientService/findEnabledMessageRecipient`
- RPC`rpc findEnabledMessageRecipient (FindEnabledMessageRecipientRequest) returns (FindEnabledMessageRecipientResponse);`
**请求对象 (`FindEnabledMessageRecipientRequest`)**
```json
{
"messageRecipientId": "int64"
}
```
**响应对象 (`FindEnabledMessageRecipientResponse`)**
```json
{
"messageRecipient": "MessageRecipient"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/MessageRecipientService/findEnabledMessageRecipient" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## listEnabledMessageRecipients
> 列出单页接收人
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/MessageRecipientService/listEnabledMessageRecipients`
- RPC`rpc listEnabledMessageRecipients (ListEnabledMessageRecipientsRequest) returns (ListEnabledMessageRecipientsResponse);`
**请求对象 (`ListEnabledMessageRecipientsRequest`)**
```json
{
"adminId": "int64 // 管理员ID",
"mediaType": "string",
"messageRecipientGroupId": "int64",
"keyword": "string // 关键词",
"offset": "int64 // 读取位置",
"size": "int64 // 数量通常不能小于0"
}
```
**响应对象 (`ListEnabledMessageRecipientsResponse`)**
```json
{
"messageRecipients": "[]MessageRecipient"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/MessageRecipientService/listEnabledMessageRecipients" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## updateMessageRecipient
> 修改接收人
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/MessageRecipientService/updateMessageRecipient`
- RPC`rpc updateMessageRecipient (UpdateMessageRecipientRequest) returns (RPCSuccess);`
**请求对象 (`UpdateMessageRecipientRequest`)**
```json
{
"messageRecipientId": "int64",
"adminId": "int64 // 管理员ID",
"messageMediaInstanceId": "int64",
"messageRecipientGroupIds": "[]int64",
"description": "string // 描述(备注)",
"isOn": "bool // 是否启用",
"user": "string",
"timeFrom": "string",
"timeTo": "string",
"nodeClusterIds": "[]int64 // 关联的CDN边缘节点集群ID列表"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/MessageRecipientService/updateMessageRecipient" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---

View File

@@ -0,0 +1,177 @@
# MessageService
> 消息相关服务
---
## countUnreadMessages
> 计算未读消息数
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/MessageService/countUnreadMessages`
- RPC`rpc countUnreadMessages (CountUnreadMessagesRequest) returns (RPCCountResponse);`
**请求对象 (`CountUnreadMessagesRequest`)**
```json
{}
```
**响应对象 (`RPCCountResponse`)**
```json
{
"count": "int64 // 数量"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/MessageService/countUnreadMessages" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## listUnreadMessages
> 列出单页未读消息
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/MessageService/listUnreadMessages`
- RPC`rpc listUnreadMessages (ListUnreadMessagesRequest) returns (ListUnreadMessagesResponse);`
**请求对象 (`ListUnreadMessagesRequest`)**
```json
{
"offset": "int64 // 读取位置",
"size": "int64 // 数量通常不能小于0"
}
```
**响应对象 (`ListUnreadMessagesResponse`)**
```json
{
"messages": "[]Message"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/MessageService/listUnreadMessages" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## updateAllMessagesRead
> 设置所有消息为已读
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/MessageService/updateAllMessagesRead`
- RPC`rpc updateAllMessagesRead (UpdateAllMessagesReadRequest) returns (RPCSuccess);`
**请求对象 (`UpdateAllMessagesReadRequest`)**
```json
{}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/MessageService/updateAllMessagesRead" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## updateMessageRead
> 设置消息已读状态
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/MessageService/updateMessageRead`
- RPC`rpc updateMessageRead (UpdateMessageReadRequest) returns (RPCSuccess);`
**请求对象 (`UpdateMessageReadRequest`)**
```json
{
"messageId": "int64",
"isRead": "bool"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/MessageService/updateMessageRead" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## updateMessagesRead
> 设置一组消息已读状态
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/MessageService/updateMessagesRead`
- RPC`rpc updateMessagesRead (UpdateMessagesReadRequest) returns (RPCSuccess);`
**请求对象 (`UpdateMessagesReadRequest`)**
```json
{
"messageIds": "[]int64",
"isRead": "bool"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/MessageService/updateMessagesRead" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---

View File

@@ -0,0 +1,75 @@
# MessageTaskLogService
> 消息发送任务日志
---
## countMessageTaskLogs
> 计算日志数量
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/MessageTaskLogService/countMessageTaskLogs`
- RPC`rpc countMessageTaskLogs (CountMessageTaskLogsRequest) returns (RPCCountResponse);`
**请求对象 (`CountMessageTaskLogsRequest`)**
```json
{}
```
**响应对象 (`RPCCountResponse`)**
```json
{
"count": "int64 // 数量"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/MessageTaskLogService/countMessageTaskLogs" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## listMessageTaskLogs
> 列出当页日志
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/MessageTaskLogService/listMessageTaskLogs`
- RPC`rpc listMessageTaskLogs (ListMessageTaskLogsRequest) returns (ListMessageTaskLogsResponse);`
**请求对象 (`ListMessageTaskLogsRequest`)**
```json
{
"offset": "int64 // 读取位置",
"size": "int64 // 数量通常不能小于0"
}
```
**响应对象 (`ListMessageTaskLogsResponse`)**
```json
{
"messageTaskLogs": "[]MessageTaskLog"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/MessageTaskLogService/listMessageTaskLogs" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---

View File

@@ -0,0 +1,256 @@
# MessageTaskService
> 消息发送任务服务
---
## countMessageTasksWithStatus
> 计算某个状态的消息任务数量
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/MessageTaskService/countMessageTasksWithStatus`
- RPC`rpc countMessageTasksWithStatus(CountMessageTasksWithStatusRequest) returns (RPCCountResponse);`
**请求对象 (`CountMessageTasksWithStatusRequest`)**
```json
{}
```
**响应对象 (`RPCCountResponse`)**
```json
{
"count": "int64 // 数量"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/MessageTaskService/countMessageTasksWithStatus" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## createMessageTask
> 创建消息任务
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/MessageTaskService/createMessageTask`
- RPC`rpc createMessageTask (CreateMessageTaskRequest) returns (CreateMessageTaskResponse);`
**请求对象 (`CreateMessageTaskRequest`)**
```json
{
"messageRecipientId": "int64 // 接收人ID",
"messageMediaInstanceId": "int64 // 媒介实例ID",
"user": "string // 用户标识",
"subject": "string // 标题",
"body": "string // 内容",
"isPrimary": "bool // 是否优先发送"
}
```
**响应对象 (`CreateMessageTaskResponse`)**
```json
{
"messageTaskId": "int64 // 消息任务ID"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/MessageTaskService/createMessageTask" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## deleteMessageTask
> 删除消息任务
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/MessageTaskService/deleteMessageTask`
- RPC`rpc deleteMessageTask (DeleteMessageTaskRequest) returns (RPCSuccess);`
**请求对象 (`DeleteMessageTaskRequest`)**
```json
{
"messageTaskId": "int64 // 消息任务ID"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/MessageTaskService/deleteMessageTask" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findEnabledMessageTask
> 读取消息任务状态
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/MessageTaskService/findEnabledMessageTask`
- RPC`rpc findEnabledMessageTask (FindEnabledMessageTaskRequest) returns (FindEnabledMessageTaskResponse);`
**请求对象 (`FindEnabledMessageTaskRequest`)**
```json
{
"messageTaskId": "int64 // 消息任务ID"
}
```
**响应对象 (`FindEnabledMessageTaskResponse`)**
```json
{
"messageTask": "MessageTask // 消息任务信息"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/MessageTaskService/findEnabledMessageTask" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## listMessageTasksWithStatus
> 根据状态列出某页任务
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/MessageTaskService/listMessageTasksWithStatus`
- RPC`rpc listMessageTasksWithStatus(ListMessageTasksWithStatusRequest) returns (ListMessageTasksWithStatusResponse);`
**请求对象 (`ListMessageTasksWithStatusRequest`)**
```json
{}
```
**响应对象 (`ListMessageTasksWithStatusResponse`)**
```json
{
"messageTasks": "[]MessageTask"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/MessageTaskService/listMessageTasksWithStatus" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## sendMessageTask
> 发送某个消息任务
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/MessageTaskService/sendMessageTask`
- RPC`rpc sendMessageTask(SendMessageTaskRequest) returns (SendMessageTaskResponse);`
**请求对象 (`SendMessageTaskRequest`)**
```json
{
"messageMediaInstanceId": "int64 // 媒介实例ID",
"user": "string // 用户标识",
"subject": "string // 标题",
"body": "string // 内容"
}
```
**响应对象 (`SendMessageTaskResponse`)**
```json
{
"isOk": "bool // 是否成功",
"error": "string // 失败时的提示信息",
"response": "string // 发送成功后响应内容"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/MessageTaskService/sendMessageTask" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## updateMessageTaskStatus
> 修改消息任务状态
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/MessageTaskService/updateMessageTaskStatus`
- RPC`rpc updateMessageTaskStatus(UpdateMessageTaskStatusRequest) returns (RPCSuccess);`
**请求对象 (`UpdateMessageTaskStatusRequest`)**
```json
{}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/MessageTaskService/updateMessageTaskStatus" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---

View File

@@ -0,0 +1,233 @@
# MetricChartService
> 指标图表相关服务
---
## countEnabledMetricCharts
> 计算图表数量
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/MetricChartService/countEnabledMetricCharts`
- RPC`rpc countEnabledMetricCharts (CountEnabledMetricChartsRequest) returns (RPCCountResponse);`
**请求对象 (`CountEnabledMetricChartsRequest`)**
```json
{
"metricItemId": "int64"
}
```
**响应对象 (`RPCCountResponse`)**
```json
{
"count": "int64 // 数量"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/MetricChartService/countEnabledMetricCharts" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## createMetricChart
> 创建图表
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/MetricChartService/createMetricChart`
- RPC`rpc createMetricChart (CreateMetricChartRequest) returns (CreateMetricChartResponse);`
**请求对象 (`CreateMetricChartRequest`)**
```json
{
"metricItemId": "int64",
"name": "string // 名称",
"type": "string",
"widthDiv": "int32",
"paramsJSON": "bytes",
"maxItems": "int32",
"ignoreEmptyKeys": "bool",
"ignoredKeys": "[]string"
}
```
**响应对象 (`CreateMetricChartResponse`)**
```json
{
"metricChartId": "int64"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/MetricChartService/createMetricChart" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## deleteMetricChart
> 删除图表
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/MetricChartService/deleteMetricChart`
- RPC`rpc deleteMetricChart (DeleteMetricChartRequest) returns (RPCSuccess);`
**请求对象 (`DeleteMetricChartRequest`)**
```json
{
"metricChartId": "int64"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/MetricChartService/deleteMetricChart" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findEnabledMetricChart
> 查找单个图表
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/MetricChartService/findEnabledMetricChart`
- RPC`rpc findEnabledMetricChart (FindEnabledMetricChartRequest) returns (FindEnabledMetricChartResponse);`
**请求对象 (`FindEnabledMetricChartRequest`)**
```json
{
"metricChartId": "int64"
}
```
**响应对象 (`FindEnabledMetricChartResponse`)**
```json
{
"metricChart": "MetricChart"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/MetricChartService/findEnabledMetricChart" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## listEnabledMetricCharts
> 列出单页图表
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/MetricChartService/listEnabledMetricCharts`
- RPC`rpc listEnabledMetricCharts (ListEnabledMetricChartsRequest) returns (ListEnabledMetricChartsResponse);`
**请求对象 (`ListEnabledMetricChartsRequest`)**
```json
{
"metricItemId": "int64",
"offset": "int64 // 读取位置",
"size": "int64 // 数量通常不能小于0"
}
```
**响应对象 (`ListEnabledMetricChartsResponse`)**
```json
{
"metricCharts": "[]MetricChart"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/MetricChartService/listEnabledMetricCharts" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## updateMetricChart
> 修改图表
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/MetricChartService/updateMetricChart`
- RPC`rpc updateMetricChart (UpdateMetricChartRequest) returns (RPCSuccess);`
**请求对象 (`UpdateMetricChartRequest`)**
```json
{
"metricChartId": "int64",
"name": "string // 名称",
"type": "string",
"widthDiv": "int32",
"paramsJSON": "bytes",
"isOn": "bool // 是否启用",
"maxItems": "int32",
"ignoreEmptyKeys": "bool",
"ignoredKeys": "[]string"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/MetricChartService/updateMetricChart" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---

View File

@@ -0,0 +1,234 @@
# MetricItemService
> 指标相关服务
---
## countAllEnabledMetricItems
> 计算指标数量
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/MetricItemService/countAllEnabledMetricItems`
- RPC`rpc countAllEnabledMetricItems (CountAllEnabledMetricItemsRequest) returns (RPCCountResponse);`
**请求对象 (`CountAllEnabledMetricItemsRequest`)**
```json
{
"category": "string"
}
```
**响应对象 (`RPCCountResponse`)**
```json
{
"count": "int64 // 数量"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/MetricItemService/countAllEnabledMetricItems" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## createMetricItem
> 创建指标
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/MetricItemService/createMetricItem`
- RPC`rpc createMetricItem (CreateMetricItemRequest) returns (CreateMetricItemResponse);`
**请求对象 (`CreateMetricItemRequest`)**
```json
{
"code": "string",
"category": "string",
"name": "string // 名称",
"keys": "[]string",
"period": "int32",
"periodUnit": "string",
"expiresPeriod": "int32",
"value": "string",
"isPublic": "bool"
}
```
**响应对象 (`CreateMetricItemResponse`)**
```json
{
"metricItemId": "int64"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/MetricItemService/createMetricItem" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## deleteMetricItem
> 删除指标
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/MetricItemService/deleteMetricItem`
- RPC`rpc deleteMetricItem (DeleteMetricItemRequest) returns (RPCSuccess);`
**请求对象 (`DeleteMetricItemRequest`)**
```json
{
"metricItemId": "int64"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/MetricItemService/deleteMetricItem" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findEnabledMetricItem
> 查找单个指标信息
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/MetricItemService/findEnabledMetricItem`
- RPC`rpc findEnabledMetricItem (FindEnabledMetricItemRequest) returns (FindEnabledMetricItemResponse);`
**请求对象 (`FindEnabledMetricItemRequest`)**
```json
{
"metricItemId": "int64"
}
```
**响应对象 (`FindEnabledMetricItemResponse`)**
```json
{
"metricItem": "MetricItem"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/MetricItemService/findEnabledMetricItem" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## listEnabledMetricItems
> 列出单页指标
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/MetricItemService/listEnabledMetricItems`
- RPC`rpc listEnabledMetricItems (ListEnabledMetricItemsRequest) returns (ListEnabledMetricItemsResponse);`
**请求对象 (`ListEnabledMetricItemsRequest`)**
```json
{
"category": "string",
"offset": "int64 // 读取位置",
"size": "int64 // 数量通常不能小于0"
}
```
**响应对象 (`ListEnabledMetricItemsResponse`)**
```json
{
"metricItems": "[]MetricItem"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/MetricItemService/listEnabledMetricItems" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## updateMetricItem
> 修改指标
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/MetricItemService/updateMetricItem`
- RPC`rpc updateMetricItem (UpdateMetricItemRequest) returns (RPCSuccess);`
**请求对象 (`UpdateMetricItemRequest`)**
```json
{
"metricItemId": "int64",
"name": "string // 名称",
"keys": "[]string",
"period": "int32",
"periodUnit": "string",
"expiresPeriod": "int32",
"value": "string",
"isOn": "bool // 是否启用",
"isPublic": "bool"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/MetricItemService/updateMetricItem" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---

View File

@@ -0,0 +1,78 @@
# MetricStatService
> 指标统计数据相关服务
---
## countMetricStats
> 计算指标数据数量
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/MetricStatService/countMetricStats`
- RPC`rpc countMetricStats (CountMetricStatsRequest) returns (RPCCountResponse);`
**请求对象 (`CountMetricStatsRequest`)**
```json
{
"metricItemId": "int64"
}
```
**响应对象 (`RPCCountResponse`)**
```json
{
"count": "int64 // 数量"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/MetricStatService/countMetricStats" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## listMetricStats
> 读取单页指标数据
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/MetricStatService/listMetricStats`
- RPC`rpc listMetricStats (ListMetricStatsRequest) returns (ListMetricStatsResponse);`
**请求对象 (`ListMetricStatsRequest`)**
```json
{
"metricItemId": "int64",
"offset": "int64 // 读取位置",
"size": "int64 // 数量通常不能小于0"
}
```
**响应对象 (`ListMetricStatsResponse`)**
```json
{
"metricStats": "[]MetricStat"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/MetricStatService/listMetricStats" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---

View File

@@ -0,0 +1,87 @@
# NSAccessLogService
> 访问日志相关服务
---
## findNSAccessLog
> 查找单个日志
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/NSAccessLogService/findNSAccessLog`
- RPC`rpc findNSAccessLog (FindNSAccessLogRequest) returns (FindNSAccessLogResponse);`
**请求对象 (`FindNSAccessLogRequest`)**
```json
{
"requestId": "string"
}
```
**响应对象 (`FindNSAccessLogResponse`)**
```json
{
"nsAccessLog": "NSAccessLog"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NSAccessLogService/findNSAccessLog" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## listNSAccessLogs
> 列出单页访问日志
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/NSAccessLogService/listNSAccessLogs`
- RPC`rpc listNSAccessLogs (ListNSAccessLogsRequest) returns (ListNSAccessLogsResponse);`
**请求对象 (`ListNSAccessLogsRequest`)**
```json
{
"requestId": "string // 上一页请求ID可选",
"nsClusterId": "int64 // 集群",
"nsNodeId": "int64 // 节点ID",
"nsDomainId": "int64 // 域名ID",
"nsRecordId": "int64 // 记录ID",
"size": "int64 // 单页条数",
"day": "string // 日期格式YYYYMMDD",
"reverse": "bool // 是否反向查找,可选",
"keyword": "string // 关键词",
"recordType": "string // 记录类型"
}
```
**响应对象 (`ListNSAccessLogsResponse`)**
```json
{
"nsAccessLogs": "[]NSAccessLog",
"requestId": "string",
"hasMore": "bool"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NSAccessLogService/listNSAccessLogs" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,254 @@
# NSDomainGroupService
> 域名分组服务
---
## countAllAvailableNSDomainGroups
> 查询可用分组数量
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/NSDomainGroupService/countAllAvailableNSDomainGroups`
- RPC`rpc countAllAvailableNSDomainGroups(CountAllAvailableNSDomainGroupsRequest) returns (RPCCountResponse);`
**请求对象 (`CountAllAvailableNSDomainGroupsRequest`)**
```json
{
"userId": "int64 // 用户ID"
}
```
**响应对象 (`RPCCountResponse`)**
```json
{
"count": "int64 // 数量"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NSDomainGroupService/countAllAvailableNSDomainGroups" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## createNSDomainGroup
> 创建分组
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/NSDomainGroupService/createNSDomainGroup`
- RPC`rpc createNSDomainGroup(CreateNSDomainGroupRequest) returns (CreateNSDomainGroupResponse);`
**请求对象 (`CreateNSDomainGroupRequest`)**
```json
{
"name": "string // 名称"
}
```
**响应对象 (`CreateNSDomainGroupResponse`)**
```json
{
"nsDomainGroupId": "int64"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NSDomainGroupService/createNSDomainGroup" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## deleteNSDomainGroup
> 删除分组
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/NSDomainGroupService/deleteNSDomainGroup`
- RPC`rpc deleteNSDomainGroup(DeleteNSDomainGroupRequest) returns (RPCSuccess);`
**请求对象 (`DeleteNSDomainGroupRequest`)**
```json
{
"nsDomainGroupId": "int64"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NSDomainGroupService/deleteNSDomainGroup" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findAllAvailableNSDomainGroups
> 查询所有启用分组
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/NSDomainGroupService/findAllAvailableNSDomainGroups`
- RPC`rpc findAllAvailableNSDomainGroups(FindAllAvailableNSDomainGroupsRequest) returns (FindAllAvailableNSDomainGroupsResponse);`
**请求对象 (`FindAllAvailableNSDomainGroupsRequest`)**
```json
{
"userId": "int64 // 用户ID"
}
```
**响应对象 (`FindAllAvailableNSDomainGroupsResponse`)**
```json
{
"nsDomainGroups": "[]NSDomainGroup"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NSDomainGroupService/findAllAvailableNSDomainGroups" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findAllNSDomainGroups
> 查询所有分组
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/NSDomainGroupService/findAllNSDomainGroups`
- RPC`rpc findAllNSDomainGroups(FindAllNSDomainGroupsRequest) returns (FindAllNSDomainGroupsResponse);`
**请求对象 (`FindAllNSDomainGroupsRequest`)**
```json
{
"userId": "int64 // 用户ID"
}
```
**响应对象 (`FindAllNSDomainGroupsResponse`)**
```json
{
"nsDomainGroups": "[]NSDomainGroup"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NSDomainGroupService/findAllNSDomainGroups" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findNSDomainGroup
> 查找单个分组
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/NSDomainGroupService/findNSDomainGroup`
- RPC`rpc findNSDomainGroup(FindNSDomainGroupRequest) returns (FindNSDomainGroupResponse);`
**请求对象 (`FindNSDomainGroupRequest`)**
```json
{
"nsDomainGroupId": "int64"
}
```
**响应对象 (`FindNSDomainGroupResponse`)**
```json
{
"nsDomainGroup": "NSDomainGroup"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NSDomainGroupService/findNSDomainGroup" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## updateNSDomainGroup
> 修改分组
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/NSDomainGroupService/updateNSDomainGroup`
- RPC`rpc updateNSDomainGroup(UpdateNSDomainGroupRequest) returns (RPCSuccess);`
**请求对象 (`UpdateNSDomainGroupRequest`)**
```json
{
"nsDomainGroupId": "int64",
"name": "string // 名称",
"isOn": "bool // 是否启用"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NSDomainGroupService/updateNSDomainGroup" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---

View File

@@ -0,0 +1,709 @@
# NSDomainService
> 域名相关服务
---
## countAllNSDomains
> 计算域名数量
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/NSDomainService/countAllNSDomains`
- RPC`rpc countAllNSDomains (CountAllNSDomainsRequest) returns (RPCCountResponse);`
**请求对象 (`CountAllNSDomainsRequest`)**
```json
{
"userId": "int64 // 用户ID",
"nsClusterId": "int64",
"keyword": "string // 关键词",
"nsDomainGroupId": "int64",
"status": "string"
}
```
**响应对象 (`RPCCountResponse`)**
```json
{
"count": "int64 // 数量"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NSDomainService/countAllNSDomains" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## createNSDomain
> 创建单个域名
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/NSDomainService/createNSDomain`
- RPC`rpc createNSDomain (CreateNSDomainRequest) returns (CreateNSDomainResponse);`
**请求对象 (`CreateNSDomainRequest`)**
```json
{
"nsClusterId": "int64 // 所属集群",
"userId": "int64 // 所属用户",
"name": "string // 域名",
"nsDomainGroupIds": "[]int64 // 域名分组ID"
}
```
**响应对象 (`CreateNSDomainResponse`)**
```json
{
"nsDomainId": "int64"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NSDomainService/createNSDomain" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## createNSDomains
> 批量创建域名
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/NSDomainService/createNSDomains`
- RPC`rpc createNSDomains(CreateNSDomainsRequest) returns (CreateNSDomainsResponse);`
**请求对象 (`CreateNSDomainsRequest`)**
```json
{
"nsClusterId": "int64 // 所属集群",
"userId": "int64 // 所属用户",
"names": "[]string // 一组域名",
"nsDomainGroupIds": "[]int64 // 域名分组ID"
}
```
**响应对象 (`CreateNSDomainsResponse`)**
```json
{
"nsDomainIds": "[]int64"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NSDomainService/createNSDomains" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## deleteNSDomain
> 删除域名
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/NSDomainService/deleteNSDomain`
- RPC`rpc deleteNSDomain (DeleteNSDomainRequest) returns (RPCSuccess);`
**请求对象 (`DeleteNSDomainRequest`)**
```json
{
"nsDomainId": "int64"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NSDomainService/deleteNSDomain" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## deleteNSDomains
> 批量删除域名
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/NSDomainService/deleteNSDomains`
- RPC`rpc deleteNSDomains(DeleteNSDomainsRequest) returns (RPCSuccess);`
**请求对象 (`DeleteNSDomainsRequest`)**
```json
{
"names": "[]string",
"userId": "int64 // 域名所属用户ID"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NSDomainService/deleteNSDomains" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## existNSDomains
> 检查一组域名是否在用户账户中存在
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/NSDomainService/existNSDomains`
- RPC`rpc existNSDomains(ExistNSDomainsRequest) returns (ExistNSDomainsResponse);`
**请求对象 (`ExistNSDomainsRequest`)**
```json
{
"names": "[]string",
"userId": "int64 // 用户ID"
}
```
**响应对象 (`ExistNSDomainsResponse`)**
```json
{
"existingNames": "[]string"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NSDomainService/existNSDomains" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## existVerifiedNSDomains
> 检查一组域名是否已通过验证
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/NSDomainService/existVerifiedNSDomains`
- RPC`rpc existVerifiedNSDomains(ExistVerifiedNSDomainsRequest) returns (ExistVerifiedNSDomainsResponse);`
**请求对象 (`ExistVerifiedNSDomainsRequest`)**
```json
{
"names": "[]string"
}
```
**响应对象 (`ExistVerifiedNSDomainsResponse`)**
```json
{
"existingNames": "[]string"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NSDomainService/existVerifiedNSDomains" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findNSDomain
> 查找单个域名
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/NSDomainService/findNSDomain`
- RPC`rpc findNSDomain (FindNSDomainRequest) returns (FindNSDomainResponse);`
**请求对象 (`FindNSDomainRequest`)**
```json
{
"nsDomainId": "int64 // 域名ID"
}
```
**响应对象 (`FindNSDomainResponse`)**
```json
{
"nsDomain": "NSDomain"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NSDomainService/findNSDomain" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findNSDomainRecordsHealthCheck
> 查询记录健康检查全局设置
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/NSDomainService/findNSDomainRecordsHealthCheck`
- RPC`rpc findNSDomainRecordsHealthCheck(FindNSDomainRecordsHealthCheckRequest) returns (FindNSDomainRecordsHealthCheckResponse);`
**请求对象 (`FindNSDomainRecordsHealthCheckRequest`)**
```json
{
"nsDomainId": "int64 // 域名ID"
}
```
**响应对象 (`FindNSDomainRecordsHealthCheckResponse`)**
```json
{
"nsDomainRecordsHealthCheckJSON": "bytes // 健康检查设置"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NSDomainService/findNSDomainRecordsHealthCheck" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findNSDomainTSIG
> 查找TSIG配置
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/NSDomainService/findNSDomainTSIG`
- RPC`rpc findNSDomainTSIG (FindNSDomainTSIGRequest) returns (FindNSDomainTSIGResponse);`
**请求对象 (`FindNSDomainTSIGRequest`)**
```json
{
"nsDomainId": "int64"
}
```
**响应对象 (`FindNSDomainTSIGResponse`)**
```json
{
"tsigJSON": "bytes"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NSDomainService/findNSDomainTSIG" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findNSDomainVerifyingInfo
> 获取域名验证信息
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/NSDomainService/findNSDomainVerifyingInfo`
- RPC`rpc findNSDomainVerifyingInfo(FindNSDomainVerifyingInfoRequest) returns (FindNSDomainVerifyingInfoResponse);`
**请求对象 (`FindNSDomainVerifyingInfoRequest`)**
```json
{
"nsDomainId": "int64 // 要验证的域名ID"
}
```
**响应对象 (`FindNSDomainVerifyingInfoResponse`)**
```json
{
"requireTXT": "bool // 是否需要TXT验证如果不需要值false则表示用户不需要手动设置TXT此时 txt 字段内容可能为空",
"txt": "string // TXT记录",
"expiresAt": "int64 // TXT过期时间",
"status": "string // 当前状态"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NSDomainService/findNSDomainVerifyingInfo" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findNSDomainWithName
> 根据域名名称查找域名
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/NSDomainService/findNSDomainWithName`
- RPC`rpc findNSDomainWithName(FindNSDomainWithNameRequest) returns (FindNSDomainWithNameResponse);`
**请求对象 (`FindNSDomainWithNameRequest`)**
```json
{
"userId": "int64 // 用户ID只有管理员才能指定用户",
"name": "string // 域名"
}
```
**响应对象 (`FindNSDomainWithNameResponse`)**
```json
{
"nsDomain": "NSDomain"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NSDomainService/findNSDomainWithName" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findVerifiedNSDomainOnCluster
> 根据域名名称查找集群中的已验证域名
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/NSDomainService/findVerifiedNSDomainOnCluster`
- RPC`rpc findVerifiedNSDomainOnCluster(FindVerifiedNSDomainOnClusterRequest) returns (FindVerifiedNSDomainOnClusterResponse);`
**请求对象 (`FindVerifiedNSDomainOnClusterRequest`)**
```json
{
"nsClusterId": "int64 // 集群ID",
"name": "string // 域名"
}
```
**响应对象 (`FindVerifiedNSDomainOnClusterResponse`)**
```json
{
"nsDomain": "NSDomain"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NSDomainService/findVerifiedNSDomainOnCluster" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## listNSDomains
> 列出单页域名
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/NSDomainService/listNSDomains`
- RPC`rpc listNSDomains (ListNSDomainsRequest) returns (ListNSDomainsResponse);`
**请求对象 (`ListNSDomainsRequest`)**
```json
{
"userId": "int64 // 用户ID",
"nsClusterId": "int64",
"keyword": "string // 关键词",
"nsDomainGroupId": "int64",
"offset": "int64 // 读取位置",
"size": "int64 // 数量通常不能小于0"
}
```
**响应对象 (`ListNSDomainsResponse`)**
```json
{
"nsDomains": "[]NSDomain"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NSDomainService/listNSDomains" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## updateNSDomain
> 修改域名
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/NSDomainService/updateNSDomain`
- RPC`rpc updateNSDomain (UpdateNSDomainRequest) returns (RPCSuccess);`
**请求对象 (`UpdateNSDomainRequest`)**
```json
{
"nsDomainId": "int64",
"nsClusterId": "int64",
"userId": "int64 // 用户ID",
"nsDomainGroupIds": "[]int64 // 域名分组ID",
"isOn": "bool // 是否启用"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NSDomainService/updateNSDomain" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## updateNSDomainRecordsHealthCheck
> 修改记录健康检查全局设置
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/NSDomainService/updateNSDomainRecordsHealthCheck`
- RPC`rpc updateNSDomainRecordsHealthCheck(UpdateNSDomainRecordsHealthCheckRequest) returns (RPCSuccess);`
**请求对象 (`UpdateNSDomainRecordsHealthCheckRequest`)**
```json
{
"nsDomainId": "int64 // 域名ID",
"nsDomainRecordsHealthCheckJSON": "bytes // 健康检查设置"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NSDomainService/updateNSDomainRecordsHealthCheck" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## updateNSDomainStatus
> 修改域名状态
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/NSDomainService/updateNSDomainStatus`
- RPC`rpc updateNSDomainStatus(UpdateNSDomainStatusRequest) returns (RPCSuccess);`
**请求对象 (`UpdateNSDomainStatusRequest`)**
```json
{
"nsDomainId": "int64",
"status": "string"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NSDomainService/updateNSDomainStatus" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## updateNSDomainTSIG
> 修改TSIG配置
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/NSDomainService/updateNSDomainTSIG`
- RPC`rpc updateNSDomainTSIG (UpdateNSDomainTSIGRequest) returns (RPCSuccess);`
**请求对象 (`UpdateNSDomainTSIGRequest`)**
```json
{
"nsDomainId": "int64",
"tsigJSON": "bytes"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NSDomainService/updateNSDomainTSIG" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## verifyNSDomain
> 验证域名信息
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/NSDomainService/verifyNSDomain`
- RPC`rpc verifyNSDomain(VerifyNSDomainRequest) returns (VerifyNSDomainResponse);`
**请求对象 (`VerifyNSDomainRequest`)**
```json
{
"nsDomainId": "int64"
}
```
**响应对象 (`VerifyNSDomainResponse`)**
```json
{
"isOk": "bool // 是否成功",
"errorCode": "string // 错误代码",
"errorMessage": "string // 错误消息",
"currentTXTValues": "[]string // 当前的TXT值",
"currentNSValues": "[]string // 当前的NS记录值"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NSDomainService/verifyNSDomain" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---

View File

@@ -0,0 +1,230 @@
# NSKeyService
> NS密钥相关服务
---
## countAllNSKeys
> 计算密钥数量
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/NSKeyService/countAllNSKeys`
- RPC`rpc countAllNSKeys (CountAllNSKeysRequest) returns (RPCCountResponse);`
**请求对象 (`CountAllNSKeysRequest`)**
```json
{
"nsDomainId": "int64",
"nsZoneId": "int64"
}
```
**响应对象 (`RPCCountResponse`)**
```json
{
"count": "int64 // 数量"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NSKeyService/countAllNSKeys" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## createNSKey
> 创建密钥
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/NSKeyService/createNSKey`
- RPC`rpc createNSKey (CreateNSKeyRequest) returns (CreateNSKeyResponse);`
**请求对象 (`CreateNSKeyRequest`)**
```json
{
"nsDomainId": "int64",
"nsZoneId": "int64",
"name": "string // 名称",
"algo": "string",
"secret": "string",
"secretType": "string"
}
```
**响应对象 (`CreateNSKeyResponse`)**
```json
{
"nsKeyId": "int64"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NSKeyService/createNSKey" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## deleteNSKey
> 删除密钥
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/NSKeyService/deleteNSKey`
- RPC`rpc deleteNSKey (DeleteNSKeyRequest) returns (RPCSuccess);`
**请求对象 (`DeleteNSKeyRequest`)**
```json
{
"nsKeyId": "int64"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NSKeyService/deleteNSKey" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findNSKey
> 查找单个密钥
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/NSKeyService/findNSKey`
- RPC`rpc findNSKey (FindNSKeyRequest) returns (FindNSKeyResponse);`
**请求对象 (`FindNSKeyRequest`)**
```json
{
"nsKeyId": "int64"
}
```
**响应对象 (`FindNSKeyResponse`)**
```json
{
"nsKey": "NSKey"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NSKeyService/findNSKey" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## listNSKeys
> 列出单页密钥
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/NSKeyService/listNSKeys`
- RPC`rpc listNSKeys (ListNSKeysRequest) returns (ListNSKeysResponse);`
**请求对象 (`ListNSKeysRequest`)**
```json
{
"nsDomainId": "int64",
"nsZoneId": "int64",
"offset": "int64 // 读取位置",
"size": "int64 // 数量通常不能小于0"
}
```
**响应对象 (`ListNSKeysResponse`)**
```json
{
"nsKeys": "[]NSKey"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NSKeyService/listNSKeys" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## updateNSKey
> 修改密钥
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/NSKeyService/updateNSKey`
- RPC`rpc updateNSKey (UpdateNSKeyRequest) returns (RPCSuccess);`
**请求对象 (`UpdateNSKeyRequest`)**
```json
{
"nsKeyId": "int64",
"name": "string // 名称",
"algo": "string",
"secret": "string",
"secretType": "string",
"isOn": "bool // 是否启用"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NSKeyService/updateNSKey" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---

View File

@@ -0,0 +1,815 @@
# NSNodeService
> 域名服务器节点服务
---
## checkNSNodeLatestVersion
> 检查NS节点新版本
- 角色:`dns`, `admin`
- HTTP`POST https://backend.dooki.cloud/NSNodeService/checkNSNodeLatestVersion`
- RPC`rpc checkNSNodeLatestVersion (CheckNSNodeLatestVersionRequest) returns (CheckNSNodeLatestVersionResponse);`
**请求对象 (`CheckNSNodeLatestVersionRequest`)**
```json
{
"os": "string",
"arch": "string",
"currentVersion": "string"
}
```
**响应对象 (`CheckNSNodeLatestVersionResponse`)**
```json
{
"hasNewVersion": "bool",
"newVersion": "string"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NSNodeService/checkNSNodeLatestVersion" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## countAllNSNodes
> 所有可用的NS节点数量
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/NSNodeService/countAllNSNodes`
- RPC`rpc countAllNSNodes (CountAllNSNodesRequest) returns (RPCCountResponse);`
**请求对象 (`CountAllNSNodesRequest`)**
```json
{}
```
**响应对象 (`RPCCountResponse`)**
```json
{
"count": "int64 // 数量"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NSNodeService/countAllNSNodes" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## countAllNSNodesMatch
> 计算匹配的NS节点数量
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/NSNodeService/countAllNSNodesMatch`
- RPC`rpc countAllNSNodesMatch (CountAllNSNodesMatchRequest) returns (RPCCountResponse);`
**请求对象 (`CountAllNSNodesMatchRequest`)**
```json
{
"nsClusterId": "int64",
"installState": "int32",
"activeState": "int32",
"keyword": "string // int64 nodeGroupId = 5;",
"nodeRegionId": "int64"
}
```
**响应对象 (`RPCCountResponse`)**
```json
{
"count": "int64 // 数量"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NSNodeService/countAllNSNodesMatch" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## countAllUpgradeNSNodesWithNSClusterId
> 计算需要升级的NS节点数量
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/NSNodeService/countAllUpgradeNSNodesWithNSClusterId`
- RPC`rpc countAllUpgradeNSNodesWithNSClusterId (CountAllUpgradeNSNodesWithNSClusterIdRequest) returns (RPCCountResponse);`
**请求对象 (`CountAllUpgradeNSNodesWithNSClusterIdRequest`)**
```json
{
"nsClusterId": "int64"
}
```
**响应对象 (`RPCCountResponse`)**
```json
{
"count": "int64 // 数量"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NSNodeService/countAllUpgradeNSNodesWithNSClusterId" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## createNSNode
> 创建NS节点
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/NSNodeService/createNSNode`
- RPC`rpc createNSNode (CreateNSNodeRequest) returns (CreateNSNodeResponse);`
**请求对象 (`CreateNSNodeRequest`)**
```json
{
"name": "string // 名称",
"nodeClusterId": "int64 // 集群ID",
"nodeLogin": "NodeLogin"
}
```
**响应对象 (`CreateNSNodeResponse`)**
```json
{
"nsNodeId": "int64"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NSNodeService/createNSNode" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## deleteNSNode
> 删除NS节点
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/NSNodeService/deleteNSNode`
- RPC`rpc deleteNSNode (DeleteNSNodeRequest) returns (RPCSuccess);`
**请求对象 (`DeleteNSNodeRequest`)**
```json
{
"nsNodeId": "int64"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NSNodeService/deleteNSNode" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findAllNSNodesWithNSClusterId
> 根据集群查找所有NS节点
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/NSNodeService/findAllNSNodesWithNSClusterId`
- RPC`rpc findAllNSNodesWithNSClusterId (FindAllNSNodesWithNSClusterIdRequest) returns (FindAllNSNodesWithNSClusterIdResponse);`
**请求对象 (`FindAllNSNodesWithNSClusterIdRequest`)**
```json
{
"nsClusterId": "int64"
}
```
**响应对象 (`FindAllNSNodesWithNSClusterIdResponse`)**
```json
{
"nsNodes": "[]NSNode"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NSNodeService/findAllNSNodesWithNSClusterId" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findLatestNSNodeVersion
> 获取NS节点最新版本
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/NSNodeService/findLatestNSNodeVersion`
- RPC`rpc findLatestNSNodeVersion (FindLatestNSNodeVersionRequest) returns (FindLatestNSNodeVersionResponse);`
**请求对象 (`FindLatestNSNodeVersionRequest`)**
```json
{}
```
**响应对象 (`FindLatestNSNodeVersionResponse`)**
```json
{
"version": "string"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NSNodeService/findLatestNSNodeVersion" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findNSNode
> 获取单个NS节点信息
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/NSNodeService/findNSNode`
- RPC`rpc findNSNode (FindNSNodeRequest) returns (FindNSNodeResponse);`
**请求对象 (`FindNSNodeRequest`)**
```json
{
"nsNodeId": "int64"
}
```
**响应对象 (`FindNSNodeResponse`)**
```json
{
"nsNode": "NSNode"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NSNodeService/findNSNode" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findNSNodeAPIConfig
> 查找单个节点的API相关配置
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/NSNodeService/findNSNodeAPIConfig`
- RPC`rpc findNSNodeAPIConfig(FindNSNodeAPIConfigRequest) returns (FindNSNodeAPIConfigResponse);`
**请求对象 (`FindNSNodeAPIConfigRequest`)**
```json
{
"nsNodeId": "int64"
}
```
**响应对象 (`FindNSNodeAPIConfigResponse`)**
```json
{
"apiNodeAddrsJSON": "bytes"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NSNodeService/findNSNodeAPIConfig" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findNSNodeDDoSProtection
> 获取NS节点的DDoS设置
- 角色:`admin`, `dns`
- HTTP`POST https://backend.dooki.cloud/NSNodeService/findNSNodeDDoSProtection`
- RPC`rpc findNSNodeDDoSProtection(FindNSNodeDDoSProtectionRequest) returns (FindNSNodeDDoSProtectionResponse);`
**请求对象 (`FindNSNodeDDoSProtectionRequest`)**
```json
{
"nsNodeId": "int64"
}
```
**响应对象 (`FindNSNodeDDoSProtectionResponse`)**
```json
{
"ddosProtectionJSON": "bytes"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NSNodeService/findNSNodeDDoSProtection" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findNSNodeInstallStatus
> 读取NS节点安装状态
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/NSNodeService/findNSNodeInstallStatus`
- RPC`rpc findNSNodeInstallStatus (FindNSNodeInstallStatusRequest) returns (FindNSNodeInstallStatusResponse);`
**请求对象 (`FindNSNodeInstallStatusRequest`)**
```json
{
"nsNodeId": "int64"
}
```
**响应对象 (`FindNSNodeInstallStatusResponse`)**
```json
{
"installStatus": "NodeInstallStatus"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NSNodeService/findNSNodeInstallStatus" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## installNSNode
> 安装NS节点
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/NSNodeService/installNSNode`
- RPC`rpc installNSNode (InstallNSNodeRequest) returns (InstallNSNodeResponse);`
**请求对象 (`InstallNSNodeRequest`)**
```json
{
"nsNodeId": "int64"
}
```
**响应对象 (`InstallNSNodeResponse`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NSNodeService/installNSNode" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## listNSNodesMatch
> 列出单页NS节点
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/NSNodeService/listNSNodesMatch`
- RPC`rpc listNSNodesMatch (ListNSNodesMatchRequest) returns (ListNSNodesMatchResponse);`
**请求对象 (`ListNSNodesMatchRequest`)**
```json
{
"offset": "int64 // 读取位置",
"size": "int64 // 数量通常不能小于0",
"nsClusterId": "int64",
"installState": "int32",
"activeState": "int32",
"keyword": "string // int64 nodeGroupId = 7;",
"nodeRegionId": "int64"
}
```
**响应对象 (`ListNSNodesMatchResponse`)**
```json
{
"nsNodes": "[]NSNode"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NSNodeService/listNSNodesMatch" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## sendCommandToNSNode
> 向NS节点发送命令
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/NSNodeService/sendCommandToNSNode`
- RPC`rpc sendCommandToNSNode (NSNodeStreamMessage) returns (NSNodeStreamMessage);`
**请求对象 (`NSNodeStreamMessage`)**
```json
{
"nsNodeId": "int64",
"requestId": "int64",
"timeoutSeconds": "int32",
"code": "string",
"dataJSON": "bytes",
"isOk": "bool",
"message": "string"
}
```
**响应对象 (`NSNodeStreamMessage`)**
```json
{
"nsNodeId": "int64",
"requestId": "int64",
"timeoutSeconds": "int32",
"code": "string",
"dataJSON": "bytes",
"isOk": "bool",
"message": "string"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NSNodeService/sendCommandToNSNode" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## startNSNode
> 启动NS节点
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/NSNodeService/startNSNode`
- RPC`rpc startNSNode (StartNSNodeRequest) returns (StartNSNodeResponse);`
**请求对象 (`StartNSNodeRequest`)**
```json
{
"nsNodeId": "int64"
}
```
**响应对象 (`StartNSNodeResponse`)**
```json
{
"isOk": "bool",
"error": "string"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NSNodeService/startNSNode" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## stopNSNode
> 停止NS节点
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/NSNodeService/stopNSNode`
- RPC`rpc stopNSNode (StopNSNodeRequest) returns (StopNSNodeResponse);`
**请求对象 (`StopNSNodeRequest`)**
```json
{
"nsNodeId": "int64"
}
```
**响应对象 (`StopNSNodeResponse`)**
```json
{
"isOk": "bool",
"error": "string"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NSNodeService/stopNSNode" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## updateNSNode
> 修改NS节点
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/NSNodeService/updateNSNode`
- RPC`rpc updateNSNode (UpdateNSNodeRequest) returns (RPCSuccess);`
**请求对象 (`UpdateNSNodeRequest`)**
```json
{
"nsNodeId": "int64",
"name": "string // 名称",
"nsClusterId": "int64",
"nodeLogin": "NodeLogin",
"isOn": "bool // 是否启用"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NSNodeService/updateNSNode" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## updateNSNodeAPIConfig
> 修改某个节点的API相关配置
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/NSNodeService/updateNSNodeAPIConfig`
- RPC`rpc updateNSNodeAPIConfig(UpdateNSNodeAPIConfigRequest) returns (RPCSuccess);`
**请求对象 (`UpdateNSNodeAPIConfigRequest`)**
```json
{
"nsNodeId": "int64",
"apiNodeAddrsJSON": "bytes"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NSNodeService/updateNSNodeAPIConfig" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## updateNSNodeDDoSProtection
> 修改NS节点的DDoS设置
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/NSNodeService/updateNSNodeDDoSProtection`
- RPC`rpc updateNSNodeDDoSProtection(UpdateNSNodeDDoSProtectionRequest) returns (RPCSuccess);`
**请求对象 (`UpdateNSNodeDDoSProtectionRequest`)**
```json
{
"nsNodeId": "int64",
"ddosProtectionJSON": "bytes"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NSNodeService/updateNSNodeDDoSProtection" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## updateNSNodeIsInstalled
> 修改NS节点安装状态
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/NSNodeService/updateNSNodeIsInstalled`
- RPC`rpc updateNSNodeIsInstalled (UpdateNSNodeIsInstalledRequest) returns (RPCSuccess);`
**请求对象 (`UpdateNSNodeIsInstalledRequest`)**
```json
{
"nsNodeId": "int64",
"isInstalled": "bool"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NSNodeService/updateNSNodeIsInstalled" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## updateNSNodeLogin
> 修改NS节点登录信息
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/NSNodeService/updateNSNodeLogin`
- RPC`rpc updateNSNodeLogin (UpdateNSNodeLoginRequest) returns (RPCSuccess);`
**请求对象 (`UpdateNSNodeLoginRequest`)**
```json
{
"nsNodeId": "int64",
"nodeLogin": "NodeLogin"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NSNodeService/updateNSNodeLogin" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---

View File

@@ -0,0 +1,254 @@
# NSPlanService
> DNS套餐服务
---
## createNSPlan
> 创建DNS套餐
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/NSPlanService/createNSPlan`
- RPC`rpc createNSPlan(CreateNSPlanRequest) returns (CreateNSPlanResponse);`
**请求对象 (`CreateNSPlanRequest`)**
```json
{
"name": "string // 名称",
"monthlyPrice": "float",
"yearlyPrice": "float",
"configJSON": "bytes"
}
```
**响应对象 (`CreateNSPlanResponse`)**
```json
{
"nsPlanId": "int64"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NSPlanService/createNSPlan" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## deleteNSPlan
> 删除DNS套餐
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/NSPlanService/deleteNSPlan`
- RPC`rpc deleteNSPlan(DeleteNSPlanRequest) returns (RPCSuccess);`
**请求对象 (`DeleteNSPlanRequest`)**
```json
{
"nsPlanId": "int64"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NSPlanService/deleteNSPlan" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findAllEnabledNSPlans
> 查找所有可用DNS套餐
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/NSPlanService/findAllEnabledNSPlans`
- RPC`rpc findAllEnabledNSPlans(FindAllEnabledNSPlansRequest) returns (FindAllEnabledNSPlansResponse);`
**请求对象 (`FindAllEnabledNSPlansRequest`)**
```json
{}
```
**响应对象 (`FindAllEnabledNSPlansResponse`)**
```json
{
"nsPlans": "[]NSPlan"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NSPlanService/findAllEnabledNSPlans" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findAllNSPlans
> 查找所有DNS套餐
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/NSPlanService/findAllNSPlans`
- RPC`rpc findAllNSPlans(FindAllNSPlansRequest) returns (FindAllNSPlansResponse);`
**请求对象 (`FindAllNSPlansRequest`)**
```json
{}
```
**响应对象 (`FindAllNSPlansResponse`)**
```json
{
"nsPlans": "[]NSPlan"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NSPlanService/findAllNSPlans" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findNSPlan
> 查找DNS套餐
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/NSPlanService/findNSPlan`
- RPC`rpc findNSPlan(FindNSPlanRequest) returns (FindNSPlanResponse);`
**请求对象 (`FindNSPlanRequest`)**
```json
{
"nsPlanId": "int64"
}
```
**响应对象 (`FindNSPlanResponse`)**
```json
{
"nsPlan": "NSPlan"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NSPlanService/findNSPlan" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## sortNSPlanOrders
> 修改DNS套餐顺序
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/NSPlanService/sortNSPlanOrders`
- RPC`rpc sortNSPlanOrders(SortNSPlansRequest) returns (RPCSuccess);`
**请求对象 (`SortNSPlansRequest`)**
```json
{
"nsPlanIds": "[]int64"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NSPlanService/sortNSPlanOrders" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## updateNSPlan
> 修改DNS套餐
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/NSPlanService/updateNSPlan`
- RPC`rpc updateNSPlan(UpdateNSPlanRequest) returns (RPCSuccess);`
**请求对象 (`UpdateNSPlanRequest`)**
```json
{
"nsPlanId": "int64",
"name": "string // 名称",
"isOn": "bool // 是否启用",
"monthlyPrice": "float",
"yearlyPrice": "float",
"configJSON": "bytes"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NSPlanService/updateNSPlan" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---

View File

@@ -0,0 +1,75 @@
# NSQuestionOptionService
> DNS查询选项
---
## createNSQuestionOption
> 创建选项
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/NSQuestionOptionService/createNSQuestionOption`
- RPC`rpc createNSQuestionOption(CreateNSQuestionOptionRequest) returns (CreateNSQuestionOptionResponse);`
**请求对象 (`CreateNSQuestionOptionRequest`)**
```json
{
"name": "string // 名称",
"valuesJSON": "bytes"
}
```
**响应对象 (`CreateNSQuestionOptionResponse`)**
```json
{
"nsQuestionOptionId": "int64"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NSQuestionOptionService/createNSQuestionOption" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## deleteNSQuestionOption
> 删除选项
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/NSQuestionOptionService/deleteNSQuestionOption`
- RPC`rpc deleteNSQuestionOption(DeleteNSQuestionOptionRequest) returns (RPCSuccess);`
**请求对象 (`DeleteNSQuestionOptionRequest`)**
```json
{
"nsQuestionOptionId": "int64"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NSQuestionOptionService/deleteNSQuestionOption" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---

View File

@@ -0,0 +1,114 @@
# NSRecordHourlyStatService
> NS记录小时统计
---
## findLatestNSRecordsHourlyStats
> 获取单个记录24小时内的统计
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/NSRecordHourlyStatService/findLatestNSRecordsHourlyStats`
- RPC`rpc findLatestNSRecordsHourlyStats(FindLatestNSRecordsHourlyStatsRequest) returns (FindLatestNSRecordsHourlyStatsResponse);`
**请求对象 (`FindLatestNSRecordsHourlyStatsRequest`)**
```json
{
"nsRecordId": "int64 // 记录ID"
}
```
**响应对象 (`FindLatestNSRecordsHourlyStatsResponse`)**
```json
{
"nsRecordHourlyStats": "[]NSRecordHourlyStat"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NSRecordHourlyStatService/findLatestNSRecordsHourlyStats" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findNSRecordHourlyStat
> 获取单个记录单个小时的统计
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/NSRecordHourlyStatService/findNSRecordHourlyStat`
- RPC`rpc findNSRecordHourlyStat(FindNSRecordHourlyStatRequest) returns (FindNSRecordHourlyStatResponse);`
**请求对象 (`FindNSRecordHourlyStatRequest`)**
```json
{
"nsRecordId": "int64 // 记录ID",
"hour": "string // YYYYMMDDHH"
}
```
**响应对象 (`FindNSRecordHourlyStatResponse`)**
```json
{
"nsRecordHourlyStat": "NSRecordHourlyStat"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NSRecordHourlyStatService/findNSRecordHourlyStat" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findNSRecordHourlyStatWithRecordIds
> 批量获取一组记录的统计
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/NSRecordHourlyStatService/findNSRecordHourlyStatWithRecordIds`
- RPC`rpc findNSRecordHourlyStatWithRecordIds(FindNSRecordHourlyStatWithRecordIdsRequest) returns (FindNSRecordHourlyStatWithRecordIdsResponse);`
**请求对象 (`FindNSRecordHourlyStatWithRecordIdsRequest`)**
```json
{
"nsRecordIds": "[]int64",
"hour": "string"
}
```
**响应对象 (`FindNSRecordHourlyStatWithRecordIdsResponse`)**
```json
{
"nsRecordHourlyStats": "[]NSRecordHourlyStat"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NSRecordHourlyStatService/findNSRecordHourlyStatWithRecordIds" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---

View File

@@ -0,0 +1,735 @@
# NSRecordService
> 域名记录相关服务
---
## countAllNSRecords
> 计算记录数量
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/NSRecordService/countAllNSRecords`
- RPC`rpc countAllNSRecords (CountAllNSRecordsRequest) returns (RPCCountResponse);`
**请求对象 (`CountAllNSRecordsRequest`)**
```json
{
"nsDomainId": "int64",
"type": "string",
"nsRouteCode": "string // 使用nsRouteCode代替",
"keyword": "string // 关键词"
}
```
**响应对象 (`RPCCountResponse`)**
```json
{
"count": "int64 // 数量"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NSRecordService/countAllNSRecords" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## countAllNSRecordsWithName
> 查询相同记录名的记录数
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/NSRecordService/countAllNSRecordsWithName`
- RPC`rpc countAllNSRecordsWithName (CountAllNSRecordsWithNameRequest) returns (RPCCountResponse);`
**请求对象 (`CountAllNSRecordsWithNameRequest`)**
```json
{
"nsDomainId": "int64",
"name": "string // 名称",
"type": "string"
}
```
**响应对象 (`RPCCountResponse`)**
```json
{
"count": "int64 // 数量"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NSRecordService/countAllNSRecordsWithName" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## createNSRecord
> 创建记录
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/NSRecordService/createNSRecord`
- RPC`rpc createNSRecord (CreateNSRecordRequest) returns (CreateNSRecordResponse);`
**请求对象 (`CreateNSRecordRequest`)**
```json
{
"nsDomainId": "int64",
"description": "string // 描述(备注)",
"name": "string // 名称",
"type": "string",
"value": "string",
"ttl": "int32",
"nsRouteCodes": "[]string // 路线代号",
"weight": "int32 // 权重",
"mxPriority": "int32 // mx优先级",
"srvPriority": "int32 // SRV优先级",
"srvWeight": "int32 // SRV权重",
"srvPort": "int32 // SRV端口",
"caaFlag": "int32 // CAA Flag",
"caaTag": "string // CAA TAG"
}
```
**响应对象 (`CreateNSRecordResponse`)**
```json
{
"nsRecordId": "int64"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NSRecordService/createNSRecord" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## createNSRecords
> 批量创建记录
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/NSRecordService/createNSRecords`
- RPC`rpc createNSRecords(CreateNSRecordsRequest) returns (CreateNSRecordsResponse);`
**请求对象 (`CreateNSRecordsRequest`)**
```json
{
"nsDomainId": "int64",
"description": "string // 描述(备注)",
"names": "[]string",
"type": "string",
"value": "string",
"ttl": "int32",
"nsRouteCodes": "[]string // 路线代号",
"weight": "int32 // 权重",
"mxPriority": "int32 // mx优先级",
"srvPriority": "int32 // SRV优先级",
"srvWeight": "int32 // SRV权重",
"srvPort": "int32 // SRV端口",
"caaFlag": "int32 // CAA Flag",
"caaTag": "string // CAA TAG"
}
```
**响应对象 (`CreateNSRecordsResponse`)**
```json
{
"nsRecordIds": "[]int64"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NSRecordService/createNSRecords" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## createNSRecordsWithDomainNames
> 为一组域名批量创建记录
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/NSRecordService/createNSRecordsWithDomainNames`
- RPC`rpc createNSRecordsWithDomainNames(CreateNSRecordsWithDomainNamesRequest) returns (RPCSuccess);`
**请求对象 (`CreateNSRecordsWithDomainNamesRequest`)**
```json
{
"nsDomainNames": "[]string",
"recordsJSON": "bytes",
"removeOld": "bool",
"removeAll": "bool",
"userId": "int64 // 用户ID"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NSRecordService/createNSRecordsWithDomainNames" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## deleteNSRecord
> 删除记录
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/NSRecordService/deleteNSRecord`
- RPC`rpc deleteNSRecord (DeleteNSRecordRequest) returns (RPCSuccess);`
**请求对象 (`DeleteNSRecordRequest`)**
```json
{
"nsRecordId": "int64"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NSRecordService/deleteNSRecord" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## deleteNSRecordsWithDomainNames
> 批量删除一组域名的一组记录
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/NSRecordService/deleteNSRecordsWithDomainNames`
- RPC`rpc deleteNSRecordsWithDomainNames(DeleteNSRecordsWithDomainNamesRequest) returns (RPCSuccess);`
**请求对象 (`DeleteNSRecordsWithDomainNamesRequest`)**
```json
{
"nsDomainNames": "[]string",
"searchName": "string",
"searchValue": "string",
"searchType": "string",
"searchNSRouteCodes": "[]string",
"userId": "int64 // 用户ID"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NSRecordService/deleteNSRecordsWithDomainNames" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findNSRecord
> 查询单个记录信息
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/NSRecordService/findNSRecord`
- RPC`rpc findNSRecord (FindNSRecordRequest) returns (FindNSRecordResponse);`
**请求对象 (`FindNSRecordRequest`)**
```json
{
"nsRecordId": "int64"
}
```
**响应对象 (`FindNSRecordResponse`)**
```json
{
"nsRecord": "NSRecord"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NSRecordService/findNSRecord" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findNSRecordHealthCheck
> 查询记录健康检查设置
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/NSRecordService/findNSRecordHealthCheck`
- RPC`rpc findNSRecordHealthCheck(FindNSRecordHealthCheckRequest) returns (FindNSRecordHealthCheckResponse);`
**请求对象 (`FindNSRecordHealthCheckRequest`)**
```json
{
"nsRecordId": "int64 // 记录ID"
}
```
**响应对象 (`FindNSRecordHealthCheckResponse`)**
```json
{
"nsRecordHealthCheckJSON": "bytes // 记录健康检查配置"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NSRecordService/findNSRecordHealthCheck" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findNSRecordWithNameAndType
> 使用名称和类型查询单个记录信息
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/NSRecordService/findNSRecordWithNameAndType`
- RPC`rpc findNSRecordWithNameAndType(FindNSRecordWithNameAndTypeRequest) returns (FindNSRecordWithNameAndTypeResponse);`
**请求对象 (`FindNSRecordWithNameAndTypeRequest`)**
```json
{
"nsDomainId": "int64",
"name": "string // 名称",
"type": "string"
}
```
**响应对象 (`FindNSRecordWithNameAndTypeResponse`)**
```json
{
"nsRecord": "NSRecord"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NSRecordService/findNSRecordWithNameAndType" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findNSRecordsWithNameAndType
> 使用名称和类型查询多个记录信息
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/NSRecordService/findNSRecordsWithNameAndType`
- RPC`rpc findNSRecordsWithNameAndType(FindNSRecordsWithNameAndTypeRequest) returns (FindNSRecordsWithNameAndTypeResponse);`
**请求对象 (`FindNSRecordsWithNameAndTypeRequest`)**
```json
{
"nsDomainId": "int64",
"name": "string // 名称",
"type": "string"
}
```
**响应对象 (`FindNSRecordsWithNameAndTypeResponse`)**
```json
{
"nsRecords": "[]NSRecord"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NSRecordService/findNSRecordsWithNameAndType" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## importNSRecords
> 导入域名解析
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/NSRecordService/importNSRecords`
- RPC`rpc importNSRecords(ImportNSRecordsRequest) returns (RPCSuccess);`
**请求对象 (`ImportNSRecordsRequest`)**
```json
{
"nsRecords": "[]Record",
"userId": "int64 // 用户ID",
"nsDomainName": "string",
"name": "string // 名称",
"type": "string",
"value": "string",
"ttl": "int32",
"mxPriority": "int32 // MX优先级",
"weight": "int32 // 权重",
"srvPriority": "int32 // SRV优先级",
"srvWeight": "int32 // SRV权重",
"srvPort": "int32 // SRV端口",
"caaFlag": "int32 // CAA Flag",
"caaTag": "string // CAA TAG"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NSRecordService/importNSRecords" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## listNSRecords
> 读取单页记录
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/NSRecordService/listNSRecords`
- RPC`rpc listNSRecords (ListNSRecordsRequest) returns (ListNSRecordsResponse);`
**请求对象 (`ListNSRecordsRequest`)**
```json
{
"nsDomainId": "int64",
"type": "string",
"nsRouteCode": "string // 使用nsRouteCode代替",
"keyword": "string // 关键词",
"nameAsc": "bool",
"nameDesc": "bool",
"typeAsc": "bool",
"typeDesc": "bool",
"ttlAsc": "bool",
"ttlDesc": "bool",
"upAsc": "bool",
"upDesc": "bool",
"offset": "int64 // 读取位置",
"size": "int64 // 数量通常不能小于0"
}
```
**响应对象 (`ListNSRecordsResponse`)**
```json
{
"nsRecords": "[]NSRecord"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NSRecordService/listNSRecords" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## updateNSRecord
> 修改记录
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/NSRecordService/updateNSRecord`
- RPC`rpc updateNSRecord (UpdateNSRecordRequest) returns (RPCSuccess);`
**请求对象 (`UpdateNSRecordRequest`)**
```json
{
"nsRecordId": "int64",
"description": "string // 描述(备注)",
"name": "string // 名称",
"type": "string",
"value": "string",
"ttl": "int32",
"isOn": "bool // 是否启用",
"nsRouteCodes": "[]string // 路线代号",
"weight": "int32 // 权重",
"mxPriority": "int32 // mx优先级",
"srvPriority": "int32 // SRV优先级",
"srvWeight": "int32 // SRV权重",
"srvPort": "int32 // SRV端口",
"caaFlag": "int32 // CAA Flag",
"caaTag": "string // CAA TAG"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NSRecordService/updateNSRecord" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## updateNSRecordHealthCheck
> 修改记录健康检查设置
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/NSRecordService/updateNSRecordHealthCheck`
- RPC`rpc updateNSRecordHealthCheck(UpdateNSRecordHealthCheckRequest) returns (RPCSuccess);`
**请求对象 (`UpdateNSRecordHealthCheckRequest`)**
```json
{
"nsRecordId": "int64 // 记录ID",
"nsRecordHealthCheckJSON": "bytes // 记录健康检查配置"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NSRecordService/updateNSRecordHealthCheck" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## updateNSRecordIsUp
> 手动修改记录在线状态
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/NSRecordService/updateNSRecordIsUp`
- RPC`rpc updateNSRecordIsUp(UpdateNSRecordIsUpRequest) returns (RPCSuccess);`
**请求对象 (`UpdateNSRecordIsUpRequest`)**
```json
{
"nsRecordId": "int64 // 记录ID",
"isUp": "bool // 是否在线"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NSRecordService/updateNSRecordIsUp" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## updateNSRecordsIsOnWithDomainNames
> 批量一组域名的一组记录启用状态
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/NSRecordService/updateNSRecordsIsOnWithDomainNames`
- RPC`rpc updateNSRecordsIsOnWithDomainNames(UpdateNSRecordsIsOnWithDomainNamesRequest) returns (RPCSuccess);`
**请求对象 (`UpdateNSRecordsIsOnWithDomainNamesRequest`)**
```json
{
"nsDomainNames": "[]string",
"searchName": "string",
"searchValue": "string",
"searchType": "string",
"searchNSRouteCodes": "[]string",
"isOn": "bool // 是否启用",
"userId": "int64 // 用户ID"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NSRecordService/updateNSRecordsIsOnWithDomainNames" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## updateNSRecordsWithDomainNames
> 批量修改一组域名的一组记录
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/NSRecordService/updateNSRecordsWithDomainNames`
- RPC`rpc updateNSRecordsWithDomainNames(UpdateNSRecordsWithDomainNamesRequest) returns (RPCSuccess);`
**请求对象 (`UpdateNSRecordsWithDomainNamesRequest`)**
```json
{
"nsDomainNames": "[]string",
"searchName": "string",
"searchValue": "string",
"searchType": "string",
"searchNSRouteCodes": "[]string",
"newName": "string",
"newValue": "string",
"newType": "string",
"newNSRouteCodes": "[]string",
"userId": "int64 // 用户ID"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NSRecordService/updateNSRecordsWithDomainNames" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---

View File

@@ -0,0 +1,214 @@
# NSRouteCategoryService
> 线路分类服务
---
## createNSRouteCategory
> 创建线路分类
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/NSRouteCategoryService/createNSRouteCategory`
- RPC`rpc createNSRouteCategory(CreateNSRouteCategoryRequest) returns (CreateNSRouteCategoryResponse);`
**请求对象 (`CreateNSRouteCategoryRequest`)**
```json
{
"name": "string // 名称"
}
```
**响应对象 (`CreateNSRouteCategoryResponse`)**
```json
{
"nsRouteCategoryId": "int64"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NSRouteCategoryService/createNSRouteCategory" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## deleteNSRouteCategory
> 删除线路分类
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/NSRouteCategoryService/deleteNSRouteCategory`
- RPC`rpc deleteNSRouteCategory(DeleteNSRouteCategoryRequest) returns (RPCSuccess);`
**请求对象 (`DeleteNSRouteCategoryRequest`)**
```json
{
"nsRouteCategoryId": "int64"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NSRouteCategoryService/deleteNSRouteCategory" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findAllNSRouteCategories
> 列出所有线路分类
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/NSRouteCategoryService/findAllNSRouteCategories`
- RPC`rpc findAllNSRouteCategories(FindAllNSRouteCategoriesRequest) returns (FindAllNSRouteCategoriesResponse);`
**请求对象 (`FindAllNSRouteCategoriesRequest`)**
```json
{}
```
**响应对象 (`FindAllNSRouteCategoriesResponse`)**
```json
{
"nsRouteCategories": "[]NSRouteCategory"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NSRouteCategoryService/findAllNSRouteCategories" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findNSRouteCategory
> 查找单个线路分类
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/NSRouteCategoryService/findNSRouteCategory`
- RPC`rpc findNSRouteCategory(FindNSRouteCategoryRequest) returns (FindNSRouteCategoryResponse);`
**请求对象 (`FindNSRouteCategoryRequest`)**
```json
{
"nsRouteCategoryId": "int64"
}
```
**响应对象 (`FindNSRouteCategoryResponse`)**
```json
{
"nsRouteCategory": "NSRouteCategory"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NSRouteCategoryService/findNSRouteCategory" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## updateNSRouteCategory
> 修改线路分类
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/NSRouteCategoryService/updateNSRouteCategory`
- RPC`rpc updateNSRouteCategory(UpdateNSRouteCategoryRequest) returns (RPCSuccess);`
**请求对象 (`UpdateNSRouteCategoryRequest`)**
```json
{
"nsRouteCategoryId": "int64",
"name": "string // 名称",
"isOn": "bool // 是否启用"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NSRouteCategoryService/updateNSRouteCategory" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## updateNSRouteCategoryOrders
> 对线路分类进行排序
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/NSRouteCategoryService/updateNSRouteCategoryOrders`
- RPC`rpc updateNSRouteCategoryOrders(UpdateNSRouteCategoryOrders) returns (RPCSuccess);`
**请求对象 (`UpdateNSRouteCategoryOrders`)**
```json
{
"nsRouteCategoryIds": "[]int64"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NSRouteCategoryService/updateNSRouteCategoryOrders" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---

View File

@@ -0,0 +1,404 @@
# NSRouteService
> 线路相关服务
---
## countAllNSRoutes
> 查询自定义线路数量
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/NSRouteService/countAllNSRoutes`
- RPC`rpc countAllNSRoutes(CountAllNSRoutesRequest) returns (RPCCountResponse);`
**请求对象 (`CountAllNSRoutesRequest`)**
```json
{
"nsClusterId": "int64",
"nsDomainId": "int64",
"userId": "int64 // 用户ID"
}
```
**响应对象 (`RPCCountResponse`)**
```json
{
"count": "int64 // 数量"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NSRouteService/countAllNSRoutes" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## createNSRoute
> 创建自定义线路
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/NSRouteService/createNSRoute`
- RPC`rpc createNSRoute (CreateNSRouteRequest) returns (CreateNSRouteResponse);`
**请求对象 (`CreateNSRouteRequest`)**
```json
{
"nsClusterId": "int64",
"nsDomainId": "int64",
"userId": "int64 // 用户ID",
"name": "string // 名称",
"rangesJSON": "bytes",
"isPublic": "bool // 是否公用",
"nsRouteCategoryId": "int64 // 分类ID",
"priority": "int32 // 优先级"
}
```
**响应对象 (`CreateNSRouteResponse`)**
```json
{
"nsRouteId": "int64"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NSRouteService/createNSRoute" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## deleteNSRoute
> 删除自定义线路
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/NSRouteService/deleteNSRoute`
- RPC`rpc deleteNSRoute (DeleteNSRouteRequest) returns (RPCSuccess);`
**请求对象 (`DeleteNSRouteRequest`)**
```json
{
"nsRouteId": "int64"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NSRouteService/deleteNSRoute" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findAllAgentNSRoutes
> 查找默认的搜索引擎线路
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/NSRouteService/findAllAgentNSRoutes`
- RPC`rpc findAllAgentNSRoutes(FindAllAgentNSRoutesRequest) returns (FindAllAgentNSRoutesResponse);`
**请求对象 (`FindAllAgentNSRoutesRequest`)**
```json
{}
```
**响应对象 (`FindAllAgentNSRoutesResponse`)**
```json
{
"nsRoutes": "[]NSRoute"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NSRouteService/findAllAgentNSRoutes" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findAllDefaultChinaProvinceRoutes
> 查找默认的中国省份线路
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/NSRouteService/findAllDefaultChinaProvinceRoutes`
- RPC`rpc findAllDefaultChinaProvinceRoutes(FindAllDefaultChinaProvinceRoutesRequest) returns (FindAllDefaultChinaProvinceRoutesResponse);`
**请求对象 (`FindAllDefaultChinaProvinceRoutesRequest`)**
```json
{}
```
**响应对象 (`FindAllDefaultChinaProvinceRoutesResponse`)**
```json
{
"nsRoutes": "[]NSRoute"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NSRouteService/findAllDefaultChinaProvinceRoutes" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findAllDefaultISPRoutes
> 查找默认的ISP线路
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/NSRouteService/findAllDefaultISPRoutes`
- RPC`rpc findAllDefaultISPRoutes(FindAllDefaultISPRoutesRequest) returns (FindAllDefaultISPRoutesResponse);`
**请求对象 (`FindAllDefaultISPRoutesRequest`)**
```json
{}
```
**响应对象 (`FindAllDefaultISPRoutesResponse`)**
```json
{
"nsRoutes": "[]NSRoute"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NSRouteService/findAllDefaultISPRoutes" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findAllDefaultWorldRegionRoutes
> 查找默认的世界区域线路
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/NSRouteService/findAllDefaultWorldRegionRoutes`
- RPC`rpc findAllDefaultWorldRegionRoutes(FindAllDefaultWorldRegionRoutesRequest) returns (FindAllDefaultWorldRegionRoutesResponse);`
**请求对象 (`FindAllDefaultWorldRegionRoutesRequest`)**
```json
{}
```
**响应对象 (`FindAllDefaultWorldRegionRoutesResponse`)**
```json
{
"nsRoutes": "[]NSRoute"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NSRouteService/findAllDefaultWorldRegionRoutes" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findAllNSRoutes
> 读取所有自定义线路
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/NSRouteService/findAllNSRoutes`
- RPC`rpc findAllNSRoutes (FindAllNSRoutesRequest) returns (FindAllNSRoutesResponse);`
**请求对象 (`FindAllNSRoutesRequest`)**
```json
{
"nsClusterId": "int64 // 集群ID",
"nsDomainId": "int64 // 域名ID",
"userId": "int64 // 用户ID",
"nsRouteCategoryId": "int64 // 线路分类ID"
}
```
**响应对象 (`FindAllNSRoutesResponse`)**
```json
{
"nsRoutes": "[]NSRoute"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NSRouteService/findAllNSRoutes" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findNSRoute
> 获取单个自定义路线信息
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/NSRouteService/findNSRoute`
- RPC`rpc findNSRoute (FindNSRouteRequest) returns (FindNSRouteResponse);`
**请求对象 (`FindNSRouteRequest`)**
```json
{
"nsRouteId": "int64"
}
```
**响应对象 (`FindNSRouteResponse`)**
```json
{
"nsRoute": "NSRoute"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NSRouteService/findNSRoute" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## updateNSRoute
> 修改自定义线路
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/NSRouteService/updateNSRoute`
- RPC`rpc updateNSRoute (UpdateNSRouteRequest) returns (RPCSuccess);`
**请求对象 (`UpdateNSRouteRequest`)**
```json
{
"nsRouteId": "int64",
"name": "string // 名称",
"rangesJSON": "bytes",
"isPublic": "bool // 是否公用",
"nsRouteCategoryId": "int64 // 分类ID",
"priority": "int32 // 优先级",
"isOn": "bool // 是否启用"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NSRouteService/updateNSRoute" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## updateNSRouteOrders
> 设置自定义线路排序
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/NSRouteService/updateNSRouteOrders`
- RPC`rpc updateNSRouteOrders (UpdateNSRouteOrdersRequest) returns (RPCSuccess);`
**请求对象 (`UpdateNSRouteOrdersRequest`)**
```json
{
"nsRouteIds": "[]int64"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NSRouteService/updateNSRouteOrders" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---

View File

@@ -0,0 +1,102 @@
# NSService
> 域名服务
---
## composeNSBoard
> 组合看板数据
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/NSService/composeNSBoard`
- RPC`rpc composeNSBoard (ComposeNSBoardRequest) returns (ComposeNSBoardResponse);`
**请求对象 (`ComposeNSBoardRequest`)**
```json
{}
```
**响应对象 (`ComposeNSBoardResponse`)**
```json
{
"countNSDomains": "int64",
"countNSRecords": "int64",
"countNSClusters": "int64",
"countNSNodes": "int64",
"countOfflineNSNodes": "int64",
"dailyTrafficStats": "[]DailyTrafficStat",
"hourlyTrafficStats": "[]HourlyTrafficStat",
"topNSNodeStats": "[]NodeStat",
"topNSDomainStats": "[]DomainStat",
"cpuNodeValues": "[]NodeValue",
"memoryNodeValues": "[]NodeValue",
"loadNodeValues": "[]NodeValue",
"day": "string",
"bytes": "int64",
"countRequests": "int64",
"hour": "string",
"nsClusterId": "int64",
"nsNodeId": "int64",
"nsNodeName": "string",
"nsDomainId": "int64",
"nsDomainName": "string"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NSService/composeNSBoard" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## composeNSUserBoard
> 组合用户看板数据
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/NSService/composeNSUserBoard`
- RPC`rpc composeNSUserBoard(ComposeNSUserBoardRequest) returns (ComposeNSUserBoardResponse);`
**请求对象 (`ComposeNSUserBoardRequest`)**
```json
{
"userId": "int64 // 用户ID"
}
```
**响应对象 (`ComposeNSUserBoardResponse`)**
```json
{
"countNSDomains": "int64",
"countNSRecords": "int64",
"countNSRoutes": "int64",
"nsUserPlan": "NSUserPlan",
"topNSDomainStats": "[]DomainStat",
"nsDomainId": "int64",
"nsDomainName": "string",
"countRequests": "int64",
"bytes": "int64"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NSService/composeNSUserBoard" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---

View File

@@ -0,0 +1,273 @@
# NSUserPlanService
> 用户DNS套餐服务
---
## buyNSUserPlan
> 使用余额购买用户套餐
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/NSUserPlanService/buyNSUserPlan`
- RPC`rpc buyNSUserPlan(BuyNSUserPlanRequest) returns (BuyNSUserPlanResponse);`
**请求对象 (`BuyNSUserPlanRequest`)**
```json
{
"userId": "int64 // 用户ID",
"planId": "int64",
"period": "string"
}
```
**响应对象 (`BuyNSUserPlanResponse`)**
```json
{
"userPlanId": "int64"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NSUserPlanService/buyNSUserPlan" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## countNSUserPlans
> 计算用户套餐数量
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/NSUserPlanService/countNSUserPlans`
- RPC`rpc countNSUserPlans(CountNSUserPlansRequest) returns (RPCCountResponse);`
**请求对象 (`CountNSUserPlansRequest`)**
```json
{
"userId": "int64 // 用户ID",
"nsPlanId": "int64",
"periodUnit": "string",
"isExpired": "bool",
"expireDays": "int32"
}
```
**响应对象 (`RPCCountResponse`)**
```json
{
"count": "int64 // 数量"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NSUserPlanService/countNSUserPlans" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## createNSUserPlan
> 创建用户套餐
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/NSUserPlanService/createNSUserPlan`
- RPC`rpc createNSUserPlan(CreateNSUserPlanRequest) returns (CreateNSUserPlanResponse);`
**请求对象 (`CreateNSUserPlanRequest`)**
```json
{
"userId": "int64 // 用户ID",
"nsPlanId": "int64",
"dayFrom": "string // YYYYMMDD",
"dayTo": "string // YYYYMMDD",
"periodUnit": "string // yearly|monthly"
}
```
**响应对象 (`CreateNSUserPlanResponse`)**
```json
{
"nsUserPlanId": "int64"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NSUserPlanService/createNSUserPlan" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## deleteNSUserPlan
> 删除用户套餐
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/NSUserPlanService/deleteNSUserPlan`
- RPC`rpc deleteNSUserPlan(DeleteNSUserPlanRequest) returns (RPCSuccess);`
**请求对象 (`DeleteNSUserPlanRequest`)**
```json
{
"nsUserPlanId": "int64"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NSUserPlanService/deleteNSUserPlan" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findNSUserPlan
> 读取用户套餐
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/NSUserPlanService/findNSUserPlan`
- RPC`rpc findNSUserPlan(FindNSUserPlanRequest) returns (FindNSUserPlanResponse);`
**请求对象 (`FindNSUserPlanRequest`)**
```json
{
"userId": "int64 // 和 nsUserPlanId 二选一",
"nsUserPlanId": "int64"
}
```
**响应对象 (`FindNSUserPlanResponse`)**
```json
{
"nsUserPlan": "NSUserPlan"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NSUserPlanService/findNSUserPlan" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## listNSUserPlans
> 列出单页套餐
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/NSUserPlanService/listNSUserPlans`
- RPC`rpc listNSUserPlans(ListNSUserPlansRequest) returns (ListNSUserPlansResponse);`
**请求对象 (`ListNSUserPlansRequest`)**
```json
{
"userId": "int64 // 用户ID",
"nsPlanId": "int64",
"periodUnit": "string",
"isExpired": "bool",
"expireDays": "int32",
"offset": "int64 // 读取位置",
"size": "int64 // 数量通常不能小于0"
}
```
**响应对象 (`ListNSUserPlansResponse`)**
```json
{
"nsUserPlans": "[]NSUserPlan"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NSUserPlanService/listNSUserPlans" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## updateNSUserPlan
> 修改用户套餐
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/NSUserPlanService/updateNSUserPlan`
- RPC`rpc updateNSUserPlan(UpdateNSUserPlanRequest) returns (RPCSuccess);`
**请求对象 (`UpdateNSUserPlanRequest`)**
```json
{
"nsUserPlanId": "int64",
"nsPlanId": "int64",
"dayFrom": "string // YYYYMMDD",
"dayTo": "string // YYYYMMDD",
"periodUnit": "string // yearly|monthly"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NSUserPlanService/updateNSUserPlan" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---

View File

@@ -0,0 +1,223 @@
# NodeActionService
> 节点动作服务
---
## createNodeAction
> 添加动作
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/NodeActionService/createNodeAction`
- RPC`rpc createNodeAction(CreateNodeActionRequest) returns (CreateNodeActionResponse);`
**请求对象 (`CreateNodeActionRequest`)**
```json
{
"nodeId": "int64 // 节点ID",
"role": "string // 节点角色",
"condsJSON": "bytes // 条件设置",
"actionJSON": "bytes // 动作设置",
"durationJSON": "bytes // 持续时间"
}
```
**响应对象 (`CreateNodeActionResponse`)**
```json
{
"nodeActionId": "int64"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NodeActionService/createNodeAction" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## deleteNodeAction
> 删除动作
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/NodeActionService/deleteNodeAction`
- RPC`rpc deleteNodeAction(DeleteNodeActionRequest) returns (RPCSuccess);`
**请求对象 (`DeleteNodeActionRequest`)**
```json
{
"nodeActionId": "int64"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NodeActionService/deleteNodeAction" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findAllNodeActions
> 列出某个节点的所有动作
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/NodeActionService/findAllNodeActions`
- RPC`rpc findAllNodeActions(FindAllNodeActionsRequest) returns (FindAllNodeActionsResponse);`
**请求对象 (`FindAllNodeActionsRequest`)**
```json
{
"nodeId": "int64 // 节点ID",
"role": "string // 节点角色"
}
```
**响应对象 (`FindAllNodeActionsResponse`)**
```json
{
"nodeActions": "[]NodeAction // 动作列表"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NodeActionService/findAllNodeActions" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findNodeAction
> 查找单个节点动作
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/NodeActionService/findNodeAction`
- RPC`rpc findNodeAction(FindNodeActionRequest) returns (FindNodeActionResponse);`
**请求对象 (`FindNodeActionRequest`)**
```json
{
"nodeActionId": "int64 // 动作ID"
}
```
**响应对象 (`FindNodeActionResponse`)**
```json
{
"nodeAction": "NodeAction"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NodeActionService/findNodeAction" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## updateNodeAction
> 修改动作
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/NodeActionService/updateNodeAction`
- RPC`rpc updateNodeAction(UpdateNodeActionRequest) returns (RPCSuccess);`
**请求对象 (`UpdateNodeActionRequest`)**
```json
{
"nodeActionId": "int64 // 动作ID",
"condsJSON": "bytes",
"actionJSON": "bytes",
"durationJSON": "bytes // 持续时间",
"isOn": "bool // 是否启用"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NodeActionService/updateNodeAction" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## updateNodeActionOrders
> 设置节点动作排序
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/NodeActionService/updateNodeActionOrders`
- RPC`rpc updateNodeActionOrders(UpdateNodeActionOrdersRequest) returns (RPCSuccess);`
**请求对象 (`UpdateNodeActionOrdersRequest`)**
```json
{
"nodeActionIds": "[]int64 // 节点动作ID列表"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NodeActionService/updateNodeActionOrders" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---

View File

@@ -0,0 +1,224 @@
# NodeClusterFirewallActionService
> 防火墙动作服务
---
## countAllEnabledNodeClusterFirewallActions
> 计算动作数量
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/NodeClusterFirewallActionService/countAllEnabledNodeClusterFirewallActions`
- RPC`rpc countAllEnabledNodeClusterFirewallActions (CountAllEnabledNodeClusterFirewallActionsRequest) returns (RPCCountResponse);`
**请求对象 (`CountAllEnabledNodeClusterFirewallActionsRequest`)**
```json
{
"nodeClusterId": "int64 // 集群ID"
}
```
**响应对象 (`RPCCountResponse`)**
```json
{
"count": "int64 // 数量"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NodeClusterFirewallActionService/countAllEnabledNodeClusterFirewallActions" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## createNodeClusterFirewallAction
> 创建动作
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/NodeClusterFirewallActionService/createNodeClusterFirewallAction`
- RPC`rpc createNodeClusterFirewallAction (CreateNodeClusterFirewallActionRequest) returns (NodeClusterFirewallActionResponse);`
**请求对象 (`CreateNodeClusterFirewallActionRequest`)**
```json
{
"nodeClusterId": "int64 // 集群ID",
"name": "string // 名称",
"eventLevel": "string",
"type": "string",
"paramsJSON": "bytes"
}
```
**响应对象 (`NodeClusterFirewallActionResponse`)**
```json
{
"nodeClusterFirewallActionId": "int64"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NodeClusterFirewallActionService/createNodeClusterFirewallAction" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## deleteNodeClusterFirewallAction
> 删除动作
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/NodeClusterFirewallActionService/deleteNodeClusterFirewallAction`
- RPC`rpc deleteNodeClusterFirewallAction (DeleteNodeClusterFirewallActionRequest) returns (RPCSuccess);`
**请求对象 (`DeleteNodeClusterFirewallActionRequest`)**
```json
{
"nodeClusterFirewallActionId": "int64"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NodeClusterFirewallActionService/deleteNodeClusterFirewallAction" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findAllEnabledNodeClusterFirewallActions
> 查询集群的所有动作
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/NodeClusterFirewallActionService/findAllEnabledNodeClusterFirewallActions`
- RPC`rpc findAllEnabledNodeClusterFirewallActions (FindAllEnabledNodeClusterFirewallActionsRequest) returns (FindAllEnabledNodeClusterFirewallActionsResponse);`
**请求对象 (`FindAllEnabledNodeClusterFirewallActionsRequest`)**
```json
{
"nodeClusterId": "int64 // 集群ID"
}
```
**响应对象 (`FindAllEnabledNodeClusterFirewallActionsResponse`)**
```json
{
"nodeClusterFirewallActions": "[]NodeClusterFirewallAction"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NodeClusterFirewallActionService/findAllEnabledNodeClusterFirewallActions" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findEnabledNodeClusterFirewallAction
> 查询单个动作
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/NodeClusterFirewallActionService/findEnabledNodeClusterFirewallAction`
- RPC`rpc findEnabledNodeClusterFirewallAction (FindEnabledNodeClusterFirewallActionRequest) returns (FindEnabledNodeClusterFirewallActionResponse);`
**请求对象 (`FindEnabledNodeClusterFirewallActionRequest`)**
```json
{
"nodeClusterFirewallActionId": "int64"
}
```
**响应对象 (`FindEnabledNodeClusterFirewallActionResponse`)**
```json
{
"nodeClusterFirewallAction": "NodeClusterFirewallAction"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NodeClusterFirewallActionService/findEnabledNodeClusterFirewallAction" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## updateNodeClusterFirewallAction
> 修改动作
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/NodeClusterFirewallActionService/updateNodeClusterFirewallAction`
- RPC`rpc updateNodeClusterFirewallAction (UpdateNodeClusterFirewallActionRequest) returns (RPCSuccess);`
**请求对象 (`UpdateNodeClusterFirewallActionRequest`)**
```json
{
"nodeClusterFirewallActionId": "int64",
"name": "string // 名称",
"eventLevel": "string",
"type": "string",
"paramsJSON": "bytes"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NodeClusterFirewallActionService/updateNodeClusterFirewallAction" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---

View File

@@ -0,0 +1,184 @@
# NodeClusterMetricItemService
> 集群指标
---
## disableNodeClusterMetricItem
> 禁用某个指标
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/NodeClusterMetricItemService/disableNodeClusterMetricItem`
- RPC`rpc disableNodeClusterMetricItem (DisableNodeClusterMetricItemRequest) returns (RPCSuccess);`
**请求对象 (`DisableNodeClusterMetricItemRequest`)**
```json
{
"nodeClusterId": "int64 // 集群ID",
"metricItemId": "int64"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NodeClusterMetricItemService/disableNodeClusterMetricItem" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## enableNodeClusterMetricItem
> 启用某个指标
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/NodeClusterMetricItemService/enableNodeClusterMetricItem`
- RPC`rpc enableNodeClusterMetricItem (EnableNodeClusterMetricItemRequest) returns (RPCSuccess);`
**请求对象 (`EnableNodeClusterMetricItemRequest`)**
```json
{
"nodeClusterId": "int64 // 集群ID",
"metricItemId": "int64"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NodeClusterMetricItemService/enableNodeClusterMetricItem" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## existsNodeClusterMetricItem
> 检查是否已添加某个指标
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/NodeClusterMetricItemService/existsNodeClusterMetricItem`
- RPC`rpc existsNodeClusterMetricItem (ExistsNodeClusterMetricItemRequest) returns (RPCExists);`
**请求对象 (`ExistsNodeClusterMetricItemRequest`)**
```json
{
"nodeClusterId": "int64 // 集群ID",
"metricItemId": "int64"
}
```
**响应对象 (`RPCExists`)**
```json
{
"exists": "bool"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NodeClusterMetricItemService/existsNodeClusterMetricItem" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findAllNodeClusterMetricItems
> 查找集群中所有指标
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/NodeClusterMetricItemService/findAllNodeClusterMetricItems`
- RPC`rpc findAllNodeClusterMetricItems (FindAllNodeClusterMetricItemsRequest) returns (FindAllNodeClusterMetricItemsResponse);`
**请求对象 (`FindAllNodeClusterMetricItemsRequest`)**
```json
{
"nodeClusterId": "int64 // 集群ID",
"category": "string"
}
```
**响应对象 (`FindAllNodeClusterMetricItemsResponse`)**
```json
{
"metricItems": "[]MetricItem"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NodeClusterMetricItemService/findAllNodeClusterMetricItems" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findAllNodeClustersWithMetricItemId
> 查找使用指标的集群
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/NodeClusterMetricItemService/findAllNodeClustersWithMetricItemId`
- RPC`rpc findAllNodeClustersWithMetricItemId (FindAllNodeClustersWithMetricItemIdRequest) returns (FindAllNodeClustersWithMetricItemIdResponse);`
**请求对象 (`FindAllNodeClustersWithMetricItemIdRequest`)**
```json
{
"metricItemId": "int64"
}
```
**响应对象 (`FindAllNodeClustersWithMetricItemIdResponse`)**
```json
{
"nodeClusters": "[]NodeCluster"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NodeClusterMetricItemService/findAllNodeClustersWithMetricItemId" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,345 @@
# NodeGrantService
> 节点认证信息管理服务
---
## countAllEnabledNodeGrants
> 计算认证的数量
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/NodeGrantService/countAllEnabledNodeGrants`
- RPC`rpc countAllEnabledNodeGrants (CountAllEnabledNodeGrantsRequest) returns (RPCCountResponse);`
**请求对象 (`CountAllEnabledNodeGrantsRequest`)**
```json
{
"keyword": "string // 关键词"
}
```
**响应对象 (`RPCCountResponse`)**
```json
{
"count": "int64 // 数量"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NodeGrantService/countAllEnabledNodeGrants" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## createNodeGrant
> 创建认证
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/NodeGrantService/createNodeGrant`
- RPC`rpc createNodeGrant (CreateNodeGrantRequest) returns (CreateNodeGrantResponse);`
**请求对象 (`CreateNodeGrantRequest`)**
```json
{
"name": "string // 名称",
"method": "string",
"username": "string",
"password": "string",
"privateKey": "string",
"passphrase": "string",
"description": "string // 描述(备注)",
"nodeId": "int64 // 节点ID",
"su": "bool"
}
```
**响应对象 (`CreateNodeGrantResponse`)**
```json
{
"nodeGrantId": "int64"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NodeGrantService/createNodeGrant" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## disableNodeGrant
> 禁用认证
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/NodeGrantService/disableNodeGrant`
- RPC`rpc disableNodeGrant (DisableNodeGrantRequest) returns (DisableNodeGrantResponse);`
**请求对象 (`DisableNodeGrantRequest`)**
```json
{
"nodeGrantId": "int64"
}
```
**响应对象 (`DisableNodeGrantResponse`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NodeGrantService/disableNodeGrant" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findAllEnabledNodeGrants
> 列出所有认证
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/NodeGrantService/findAllEnabledNodeGrants`
- RPC`rpc findAllEnabledNodeGrants (FindAllEnabledNodeGrantsRequest) returns (FindAllEnabledNodeGrantsResponse);`
**请求对象 (`FindAllEnabledNodeGrantsRequest`)**
```json
{}
```
**响应对象 (`FindAllEnabledNodeGrantsResponse`)**
```json
{
"nodeGrants": "[]NodeGrant"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NodeGrantService/findAllEnabledNodeGrants" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findEnabledNodeGrant
> 获取单个认证信息
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/NodeGrantService/findEnabledNodeGrant`
- RPC`rpc findEnabledNodeGrant (FindEnabledNodeGrantRequest) returns (FindEnabledNodeGrantResponse);`
**请求对象 (`FindEnabledNodeGrantRequest`)**
```json
{
"nodeGrantId": "int64"
}
```
**响应对象 (`FindEnabledNodeGrantResponse`)**
```json
{
"nodeGrant": "NodeGrant"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NodeGrantService/findEnabledNodeGrant" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findSuggestNodeGrants
> 查找集群推荐的认证
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/NodeGrantService/findSuggestNodeGrants`
- RPC`rpc findSuggestNodeGrants(FindSuggestNodeGrantsRequest) returns (FindSuggestNodeGrantsResponse);`
**请求对象 (`FindSuggestNodeGrantsRequest`)**
```json
{
"nodeClusterId": "int64 // 边缘节点集群",
"nsClusterId": "int64 // NS节点集群"
}
```
**响应对象 (`FindSuggestNodeGrantsResponse`)**
```json
{
"nodeGrants": "[]NodeGrant"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NodeGrantService/findSuggestNodeGrants" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## listEnabledNodeGrants
> 列出单页认证
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/NodeGrantService/listEnabledNodeGrants`
- RPC`rpc listEnabledNodeGrants (ListEnabledNodeGrantsRequest) returns (ListEnabledNodeGrantsResponse);`
**请求对象 (`ListEnabledNodeGrantsRequest`)**
```json
{
"keyword": "string // 关键词",
"offset": "int64 // 读取位置",
"size": "int64 // 数量通常不能小于0"
}
```
**响应对象 (`ListEnabledNodeGrantsResponse`)**
```json
{
"nodeGrants": "[]NodeGrant"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NodeGrantService/listEnabledNodeGrants" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## testNodeGrant
> 测试连接
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/NodeGrantService/testNodeGrant`
- RPC`rpc testNodeGrant (TestNodeGrantRequest) returns (TestNodeGrantResponse);`
**请求对象 (`TestNodeGrantRequest`)**
```json
{
"nodeGrantId": "int64",
"host": "string",
"port": "int32"
}
```
**响应对象 (`TestNodeGrantResponse`)**
```json
{
"isOk": "bool",
"error": "string"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NodeGrantService/testNodeGrant" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## updateNodeGrant
> 修改认证
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/NodeGrantService/updateNodeGrant`
- RPC`rpc updateNodeGrant (UpdateNodeGrantRequest) returns (RPCSuccess);`
**请求对象 (`UpdateNodeGrantRequest`)**
```json
{
"nodeGrantId": "int64",
"name": "string // 名称",
"method": "string",
"username": "string",
"password": "string",
"privateKey": "string",
"passphrase": "string",
"description": "string // 描述(备注)",
"nodeId": "int64 // 节点ID",
"su": "bool"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NodeGrantService/updateNodeGrant" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---

View File

@@ -0,0 +1,216 @@
# NodeGroupService
> 节点分组服务
---
## createNodeGroup
> 创建分组
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/NodeGroupService/createNodeGroup`
- RPC`rpc createNodeGroup (CreateNodeGroupRequest) returns (CreateNodeGroupResponse);`
**请求对象 (`CreateNodeGroupRequest`)**
```json
{
"nodeClusterId": "int64 // 集群ID",
"name": "string // 名称"
}
```
**响应对象 (`CreateNodeGroupResponse`)**
```json
{
"nodeGroupId": "int64"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NodeGroupService/createNodeGroup" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## deleteNodeGroup
> 删除分组
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/NodeGroupService/deleteNodeGroup`
- RPC`rpc deleteNodeGroup (DeleteNodeGroupRequest) returns (RPCSuccess);`
**请求对象 (`DeleteNodeGroupRequest`)**
```json
{
"nodeGroupId": "int64"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NodeGroupService/deleteNodeGroup" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findAllEnabledNodeGroupsWithNodeClusterId
> 查询所有分组
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/NodeGroupService/findAllEnabledNodeGroupsWithNodeClusterId`
- RPC`rpc findAllEnabledNodeGroupsWithNodeClusterId (FindAllEnabledNodeGroupsWithNodeClusterIdRequest) returns (FindAllEnabledNodeGroupsWithNodeClusterIdResponse);`
**请求对象 (`FindAllEnabledNodeGroupsWithNodeClusterIdRequest`)**
```json
{
"nodeClusterId": "int64 // 集群ID"
}
```
**响应对象 (`FindAllEnabledNodeGroupsWithNodeClusterIdResponse`)**
```json
{
"nodeGroups": "[]NodeGroup"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NodeGroupService/findAllEnabledNodeGroupsWithNodeClusterId" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findEnabledNodeGroup
> 查找单个分组信息
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/NodeGroupService/findEnabledNodeGroup`
- RPC`rpc findEnabledNodeGroup (FindEnabledNodeGroupRequest) returns (FindEnabledNodeGroupResponse);`
**请求对象 (`FindEnabledNodeGroupRequest`)**
```json
{
"nodeGroupId": "int64"
}
```
**响应对象 (`FindEnabledNodeGroupResponse`)**
```json
{
"nodeGroup": "NodeGroup"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NodeGroupService/findEnabledNodeGroup" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## updateNodeGroup
> 修改分组
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/NodeGroupService/updateNodeGroup`
- RPC`rpc updateNodeGroup (UpdateNodeGroupRequest) returns (RPCSuccess);`
**请求对象 (`UpdateNodeGroupRequest`)**
```json
{
"nodeGroupId": "int64",
"name": "string // 名称"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NodeGroupService/updateNodeGroup" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## updateNodeGroupOrders
> 修改分组排序
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/NodeGroupService/updateNodeGroupOrders`
- RPC`rpc updateNodeGroupOrders (UpdateNodeGroupOrdersRequest) returns (RPCSuccess);`
**请求对象 (`UpdateNodeGroupOrdersRequest`)**
```json
{
"nodeGroupIds": "[]int64"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NodeGroupService/updateNodeGroupOrders" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---

View File

@@ -0,0 +1,78 @@
# NodeIPAddressLogService
> IP地址相关日志
---
## countAllNodeIPAddressLogs
> 计算日志数量
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/NodeIPAddressLogService/countAllNodeIPAddressLogs`
- RPC`rpc countAllNodeIPAddressLogs(CountAllNodeIPAddressLogsRequest) returns (RPCCountResponse);`
**请求对象 (`CountAllNodeIPAddressLogsRequest`)**
```json
{
"nodeIPAddressId": "int64"
}
```
**响应对象 (`RPCCountResponse`)**
```json
{
"count": "int64 // 数量"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NodeIPAddressLogService/countAllNodeIPAddressLogs" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## listNodeIPAddressLogs
> 列出单页日志
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/NodeIPAddressLogService/listNodeIPAddressLogs`
- RPC`rpc listNodeIPAddressLogs(ListNodeIPAddressLogsRequest) returns (ListNodeIPAddressLogsResponse);`
**请求对象 (`ListNodeIPAddressLogsRequest`)**
```json
{
"nodeIPAddressId": "int64",
"offset": "int64 // 读取位置",
"size": "int64 // 数量通常不能小于0"
}
```
**响应对象 (`ListNodeIPAddressLogsResponse`)**
```json
{
"nodeIPAddressLogs": "[]NodeIPAddressLog"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NodeIPAddressLogService/listNodeIPAddressLogs" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---

View File

@@ -0,0 +1,455 @@
# NodeIPAddressService
> 节点IP地址服务
---
## countAllEnabledNodeIPAddresses
> 计算IP地址数量
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/NodeIPAddressService/countAllEnabledNodeIPAddresses`
- RPC`rpc countAllEnabledNodeIPAddresses(CountAllEnabledNodeIPAddressesRequest) returns (RPCCountResponse);`
**请求对象 (`CountAllEnabledNodeIPAddressesRequest`)**
```json
{
"nodeClusterId": "int64 // 集群ID",
"role": "string",
"upState": "int32",
"keyword": "string // 关键词"
}
```
**响应对象 (`RPCCountResponse`)**
```json
{
"count": "int64 // 数量"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NodeIPAddressService/countAllEnabledNodeIPAddresses" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## createNodeIPAddress
> 创建IP地址
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/NodeIPAddressService/createNodeIPAddress`
- RPC`rpc createNodeIPAddress (CreateNodeIPAddressRequest) returns (CreateNodeIPAddressResponse);`
**请求对象 (`CreateNodeIPAddressRequest`)**
```json
{
"nodeId": "int64 // 节点ID",
"role": "string // 角色node边缘节点dns智能DNS节点",
"name": "string // 名称",
"ip": "string // IP地址",
"canAccess": "bool // 是否能够访问",
"isUp": "bool // 是否上线",
"nodeClusterIds": "[]int64 // 可选项所属集群ID列表如果没有指定则表示应用于节点所属的所有集群"
}
```
**响应对象 (`CreateNodeIPAddressResponse`)**
```json
{
"nodeIPAddressId": "int64"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NodeIPAddressService/createNodeIPAddress" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## createNodeIPAddresses
> 批量创建IP地址
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/NodeIPAddressService/createNodeIPAddresses`
- RPC`rpc createNodeIPAddresses (CreateNodeIPAddressesRequest) returns (CreateNodeIPAddressesResponse);`
**请求对象 (`CreateNodeIPAddressesRequest`)**
```json
{
"nodeId": "int64 // 节点ID",
"role": "string",
"name": "string // 名称",
"ipList": "[]string",
"canAccess": "bool",
"isUp": "bool",
"groupValue": "string",
"nodeClusterIds": "[]int64 // 可选项所属集群ID列表如果没有指定则表示应用于节点所属的所有集群"
}
```
**响应对象 (`CreateNodeIPAddressesResponse`)**
```json
{
"nodeIPAddressIds": "[]int64"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NodeIPAddressService/createNodeIPAddresses" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## disableAllNodeIPAddressesWithNodeId
> 禁用节点的所有IP地址
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/NodeIPAddressService/disableAllNodeIPAddressesWithNodeId`
- RPC`rpc disableAllNodeIPAddressesWithNodeId (DisableAllNodeIPAddressesWithNodeIdRequest) returns (DisableAllNodeIPAddressesWithNodeIdResponse);`
**请求对象 (`DisableAllNodeIPAddressesWithNodeIdRequest`)**
```json
{
"nodeId": "int64 // 节点ID",
"role": "string"
}
```
**响应对象 (`DisableAllNodeIPAddressesWithNodeIdResponse`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NodeIPAddressService/disableAllNodeIPAddressesWithNodeId" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## disableNodeIPAddress
> 禁用单个IP地址
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/NodeIPAddressService/disableNodeIPAddress`
- RPC`rpc disableNodeIPAddress (DisableNodeIPAddressRequest) returns (DisableNodeIPAddressResponse);`
**请求对象 (`DisableNodeIPAddressRequest`)**
```json
{
"nodeIPAddressId": "int64"
}
```
**响应对象 (`DisableNodeIPAddressResponse`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NodeIPAddressService/disableNodeIPAddress" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findAllEnabledNodeIPAddressesWithNodeId
> 查找节点的所有地址
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/NodeIPAddressService/findAllEnabledNodeIPAddressesWithNodeId`
- RPC`rpc findAllEnabledNodeIPAddressesWithNodeId (FindAllEnabledNodeIPAddressesWithNodeIdRequest) returns (FindAllEnabledNodeIPAddressesWithNodeIdResponse);`
**请求对象 (`FindAllEnabledNodeIPAddressesWithNodeIdRequest`)**
```json
{
"nodeId": "int64 // 节点ID",
"role": "string"
}
```
**响应对象 (`FindAllEnabledNodeIPAddressesWithNodeIdResponse`)**
```json
{
"nodeIPAddresses": "[]NodeIPAddress"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NodeIPAddressService/findAllEnabledNodeIPAddressesWithNodeId" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findEnabledNodeIPAddress
> 查找单个IP地址
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/NodeIPAddressService/findEnabledNodeIPAddress`
- RPC`rpc findEnabledNodeIPAddress (FindEnabledNodeIPAddressRequest) returns (FindEnabledNodeIPAddressResponse);`
**请求对象 (`FindEnabledNodeIPAddressRequest`)**
```json
{
"nodeIPAddressId": "int64"
}
```
**响应对象 (`FindEnabledNodeIPAddressResponse`)**
```json
{
"nodeIPAddress": "NodeIPAddress"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NodeIPAddressService/findEnabledNodeIPAddress" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## listEnabledNodeIPAddresses
> 列出单页IP地址
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/NodeIPAddressService/listEnabledNodeIPAddresses`
- RPC`rpc listEnabledNodeIPAddresses(ListEnabledNodeIPAddressesRequest) returns (ListEnabledNodeIPAddressesResponse);`
**请求对象 (`ListEnabledNodeIPAddressesRequest`)**
```json
{
"nodeClusterId": "int64 // 集群ID",
"role": "string",
"upState": "int32",
"keyword": "string // 关键词",
"offset": "int64 // 读取位置",
"size": "int64 // 数量通常不能小于0"
}
```
**响应对象 (`ListEnabledNodeIPAddressesResponse`)**
```json
{
"nodeIPAddresses": "[]NodeIPAddress"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NodeIPAddressService/listEnabledNodeIPAddresses" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## restoreNodeIPAddressBackupIP
> 还原备用IP状态
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/NodeIPAddressService/restoreNodeIPAddressBackupIP`
- RPC`rpc restoreNodeIPAddressBackupIP(RestoreNodeIPAddressBackupIPRequest) returns (RPCSuccess);`
**请求对象 (`RestoreNodeIPAddressBackupIPRequest`)**
```json
{
"nodeIPAddressId": "int64"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NodeIPAddressService/restoreNodeIPAddressBackupIP" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## updateNodeIPAddress
> 修改IP地址
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/NodeIPAddressService/updateNodeIPAddress`
- RPC`rpc updateNodeIPAddress (UpdateNodeIPAddressRequest) returns (RPCSuccess);`
**请求对象 (`UpdateNodeIPAddressRequest`)**
```json
{
"nodeIPAddressId": "int64 // IP地址ID",
"name": "string // 名称",
"ip": "string",
"canAccess": "bool // 是否能够访问",
"isOn": "bool // 是否启用",
"isUp": "bool // 是否上线",
"clusterIds": "[]int64 // 可选项所属集群ID列表如果没有指定则表示应用于节点所属的所有集群"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NodeIPAddressService/updateNodeIPAddress" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## updateNodeIPAddressIsUp
> 设置上下线状态
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/NodeIPAddressService/updateNodeIPAddressIsUp`
- RPC`rpc updateNodeIPAddressIsUp(UpdateNodeIPAddressIsUpRequest) returns (RPCSuccess);`
**请求对象 (`UpdateNodeIPAddressIsUpRequest`)**
```json
{
"nodeIPAddressId": "int64",
"isUp": "bool"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NodeIPAddressService/updateNodeIPAddressIsUp" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## updateNodeIPAddressNodeId
> 修改IP地址所属节点
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/NodeIPAddressService/updateNodeIPAddressNodeId`
- RPC`rpc updateNodeIPAddressNodeId (UpdateNodeIPAddressNodeIdRequest) returns (RPCSuccess);`
**请求对象 (`UpdateNodeIPAddressNodeIdRequest`)**
```json
{
"nodeIPAddressId": "int64",
"nodeId": "int64 // 节点ID"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NodeIPAddressService/updateNodeIPAddressNodeId" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---

View File

@@ -0,0 +1,219 @@
# NodeIPAddressThresholdService
> IP阈值相关服务
---
## countAllEnabledNodeIPAddressThresholds
> 计算IP阈值的数量
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/NodeIPAddressThresholdService/countAllEnabledNodeIPAddressThresholds`
- RPC`rpc countAllEnabledNodeIPAddressThresholds(CountAllEnabledNodeIPAddressThresholdsRequest) returns (RPCCountResponse);`
**请求对象 (`CountAllEnabledNodeIPAddressThresholdsRequest`)**
```json
{
"nodeIPAddressId": "int64"
}
```
**响应对象 (`RPCCountResponse`)**
```json
{
"count": "int64 // 数量"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NodeIPAddressThresholdService/countAllEnabledNodeIPAddressThresholds" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## createNodeIPAddressThreshold
> 创建阈值
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/NodeIPAddressThresholdService/createNodeIPAddressThreshold`
- RPC`rpc createNodeIPAddressThreshold(CreateNodeIPAddressThresholdRequest) returns (CreateNodeIPAddressThresholdResponse);`
**请求对象 (`CreateNodeIPAddressThresholdRequest`)**
```json
{
"nodeIPAddressId": "int64",
"itemsJSON": "bytes",
"actionsJSON": "bytes"
}
```
**响应对象 (`CreateNodeIPAddressThresholdResponse`)**
```json
{
"nodeIPAddressThresholdId": "int64"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NodeIPAddressThresholdService/createNodeIPAddressThreshold" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## deleteNodeIPAddressThreshold
> 删除阈值
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/NodeIPAddressThresholdService/deleteNodeIPAddressThreshold`
- RPC`rpc deleteNodeIPAddressThreshold(DeleteNodeIPAddressThresholdRequest) returns (RPCSuccess);`
**请求对象 (`DeleteNodeIPAddressThresholdRequest`)**
```json
{
"nodeIPAddressThresholdId": "int64"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NodeIPAddressThresholdService/deleteNodeIPAddressThreshold" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findAllEnabledNodeIPAddressThresholds
> 查找IP的所有阈值
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/NodeIPAddressThresholdService/findAllEnabledNodeIPAddressThresholds`
- RPC`rpc findAllEnabledNodeIPAddressThresholds(FindAllEnabledNodeIPAddressThresholdsRequest) returns (FindAllEnabledNodeIPAddressThresholdsResponse);`
**请求对象 (`FindAllEnabledNodeIPAddressThresholdsRequest`)**
```json
{
"nodeIPAddressId": "int64"
}
```
**响应对象 (`FindAllEnabledNodeIPAddressThresholdsResponse`)**
```json
{
"nodeIPAddressThresholds": "[]NodeIPAddressThreshold"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NodeIPAddressThresholdService/findAllEnabledNodeIPAddressThresholds" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## updateAllNodeIPAddressThresholds
> 批量更新阈值
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/NodeIPAddressThresholdService/updateAllNodeIPAddressThresholds`
- RPC`rpc updateAllNodeIPAddressThresholds(UpdateAllNodeIPAddressThresholdsRequest) returns (RPCSuccess);`
**请求对象 (`UpdateAllNodeIPAddressThresholdsRequest`)**
```json
{
"nodeIPAddressId": "int64",
"nodeIPAddressThresholdsJSON": "bytes"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NodeIPAddressThresholdService/updateAllNodeIPAddressThresholds" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## updateNodeIPAddressThreshold
> 修改阈值
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/NodeIPAddressThresholdService/updateNodeIPAddressThreshold`
- RPC`rpc updateNodeIPAddressThreshold(UpdateNodeIPAddressThresholdRequest) returns (RPCSuccess);`
**请求对象 (`UpdateNodeIPAddressThresholdRequest`)**
```json
{
"nodeIPAddressThresholdId": "int64",
"itemsJSON": "bytes",
"actionsJSON": "bytes"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NodeIPAddressThresholdService/updateNodeIPAddressThreshold" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---

View File

@@ -0,0 +1,318 @@
# NodeLogService
> 节点日志相关服务
---
## countAllUnreadNodeLogs
> 计算未读的日志数量
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/NodeLogService/countAllUnreadNodeLogs`
- RPC`rpc countAllUnreadNodeLogs(CountAllUnreadNodeLogsRequest) returns (RPCCountResponse);`
**请求对象 (`CountAllUnreadNodeLogsRequest`)**
```json
{}
```
**响应对象 (`RPCCountResponse`)**
```json
{
"count": "int64 // 数量"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NodeLogService/countAllUnreadNodeLogs" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## countNodeLogs
> 查询日志数量
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/NodeLogService/countNodeLogs`
- RPC`rpc countNodeLogs (CountNodeLogsRequest) returns (RPCCountResponse);`
**请求对象 (`CountNodeLogsRequest`)**
```json
{
"nodeClusterId": "int64 // 集群ID",
"nodeId": "int64 // 节点ID",
"role": "string",
"dayFrom": "string",
"dayTo": "string",
"keyword": "string // 关键词",
"level": "string",
"serverId": "int64 // 服务ID网站ID",
"originId": "int64",
"isUnread": "bool",
"tag": "string",
"fixedState": "int32",
"allServers": "bool // 是否获取所有服务相关的日志"
}
```
**响应对象 (`RPCCountResponse`)**
```json
{
"count": "int64 // 数量"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NodeLogService/countNodeLogs" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## deleteNodeLogs
> 删除日志
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/NodeLogService/deleteNodeLogs`
- RPC`rpc deleteNodeLogs(DeleteNodeLogsRequest) returns (RPCSuccess);`
**请求对象 (`DeleteNodeLogsRequest`)**
```json
{
"nodeClusterId": "int64 // 集群ID",
"nodeId": "int64 // 节点ID",
"role": "string",
"offset": "int64 // 读取位置",
"size": "int64 // 数量通常不能小于0",
"dayFrom": "string",
"dayTo": "string",
"keyword": "string // 关键词",
"level": "string",
"serverId": "int64 // 服务ID网站ID",
"fixedState": "int32",
"allServers": "bool // 是否获取所有服务相关的日志",
"originId": "int64",
"isUnread": "bool",
"tag": "string"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NodeLogService/deleteNodeLogs" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## fixAllNodeLogs
> 设置所有日志为已修复
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/NodeLogService/fixAllNodeLogs`
- RPC`rpc fixAllNodeLogs (FixAllNodeLogsRequest) returns (RPCSuccess);`
**请求对象 (`FixAllNodeLogsRequest`)**
```json
{}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NodeLogService/fixAllNodeLogs" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## fixNodeLogs
> 设置日志为已修复
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/NodeLogService/fixNodeLogs`
- RPC`rpc fixNodeLogs (FixNodeLogsRequest) returns (RPCSuccess);`
**请求对象 (`FixNodeLogsRequest`)**
```json
{
"nodeLogIds": "[]int64"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NodeLogService/fixNodeLogs" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## listNodeLogs
> 列出单页日志
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/NodeLogService/listNodeLogs`
- RPC`rpc listNodeLogs (ListNodeLogsRequest) returns (ListNodeLogsResponse);`
**请求对象 (`ListNodeLogsRequest`)**
```json
{
"nodeClusterId": "int64 // 集群ID",
"nodeId": "int64 // 节点ID",
"role": "string",
"offset": "int64 // 读取位置",
"size": "int64 // 数量通常不能小于0",
"dayFrom": "string",
"dayTo": "string",
"keyword": "string // 关键词",
"level": "string",
"serverId": "int64 // 服务ID网站ID",
"fixedState": "int32",
"allServers": "bool // 是否获取所有服务相关的日志",
"originId": "int64",
"isUnread": "bool",
"tag": "string"
}
```
**响应对象 (`ListNodeLogsResponse`)**
```json
{
"nodeLogs": "[]NodeLog"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NodeLogService/listNodeLogs" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## updateAllNodeLogsRead
> 设置所有日志未已读
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/NodeLogService/updateAllNodeLogsRead`
- RPC`rpc updateAllNodeLogsRead(UpdateAllNodeLogsReadRequest) returns (RPCSuccess);`
**请求对象 (`UpdateAllNodeLogsReadRequest`)**
```json
{}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NodeLogService/updateAllNodeLogsRead" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## updateNodeLogsRead
> 设置日志为已读
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/NodeLogService/updateNodeLogsRead`
- RPC`rpc updateNodeLogsRead(UpdateNodeLogsReadRequest) returns (RPCSuccess);`
**请求对象 (`UpdateNodeLogsReadRequest`)**
```json
{
"nodeLogIds": "[]int64",
"nodeId": "int64 // 节点ID",
"role": "string"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NodeLogService/updateNodeLogsRead" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---

View File

@@ -0,0 +1,41 @@
# NodeLoginService
> 节点登录相关
---
## findNodeLoginSuggestPorts
> 读取建议的端口
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/NodeLoginService/findNodeLoginSuggestPorts`
- RPC`rpc findNodeLoginSuggestPorts(FindNodeLoginSuggestPortsRequest) returns (FindNodeLoginSuggestPortsResponse);`
**请求对象 (`FindNodeLoginSuggestPortsRequest`)**
```json
{
"host": "string"
}
```
**响应对象 (`FindNodeLoginSuggestPortsResponse`)**
```json
{
"ports": "[]int32",
"availablePorts": "[]int32"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NodeLoginService/findNodeLoginSuggestPorts" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---

View File

@@ -0,0 +1,223 @@
# NodePriceItemService
> 节点区域定价相关服务
---
## createNodePriceItem
> 创建区域价格
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/NodePriceItemService/createNodePriceItem`
- RPC`rpc createNodePriceItem (CreateNodePriceItemRequest) returns (CreateNodePriceItemResponse);`
**请求对象 (`CreateNodePriceItemRequest`)**
```json
{
"name": "string // 名称",
"type": "string",
"bitsFrom": "int64",
"bitsTo": "int64"
}
```
**响应对象 (`CreateNodePriceItemResponse`)**
```json
{
"NodePriceItemId": "int64"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NodePriceItemService/createNodePriceItem" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## deleteNodePriceItem
> 删除区域价格
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/NodePriceItemService/deleteNodePriceItem`
- RPC`rpc deleteNodePriceItem (DeleteNodePriceItemRequest) returns (RPCSuccess);`
**请求对象 (`DeleteNodePriceItemRequest`)**
```json
{
"NodePriceItemId": "int64"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NodePriceItemService/deleteNodePriceItem" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findAllAvailableNodePriceItems
> 查找所有启用的区域价格
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/NodePriceItemService/findAllAvailableNodePriceItems`
- RPC`rpc findAllAvailableNodePriceItems (FindAllAvailableNodePriceItemsRequest) returns (FindAllAvailableNodePriceItemsResponse);`
**请求对象 (`FindAllAvailableNodePriceItemsRequest`)**
```json
{
"type": "string"
}
```
**响应对象 (`FindAllAvailableNodePriceItemsResponse`)**
```json
{
"NodePriceItems": "[]NodePriceItem"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NodePriceItemService/findAllAvailableNodePriceItems" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findAllEnabledNodePriceItems
> 查找所有区域价格
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/NodePriceItemService/findAllEnabledNodePriceItems`
- RPC`rpc findAllEnabledNodePriceItems (FindAllEnabledNodePriceItemsRequest) returns (FindAllEnabledNodePriceItemsResponse);`
**请求对象 (`FindAllEnabledNodePriceItemsRequest`)**
```json
{
"type": "string"
}
```
**响应对象 (`FindAllEnabledNodePriceItemsResponse`)**
```json
{
"NodePriceItems": "[]NodePriceItem"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NodePriceItemService/findAllEnabledNodePriceItems" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findEnabledNodePriceItem
> 查找单个区域信息
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/NodePriceItemService/findEnabledNodePriceItem`
- RPC`rpc findEnabledNodePriceItem (FindEnabledNodePriceItemRequest) returns (FindEnabledNodePriceItemResponse);`
**请求对象 (`FindEnabledNodePriceItemRequest`)**
```json
{
"NodePriceItemId": "int64"
}
```
**响应对象 (`FindEnabledNodePriceItemResponse`)**
```json
{
"NodePriceItem": "NodePriceItem"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NodePriceItemService/findEnabledNodePriceItem" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## updateNodePriceItem
> 修改区域价格
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/NodePriceItemService/updateNodePriceItem`
- RPC`rpc updateNodePriceItem (UpdateNodePriceItemRequest) returns (RPCSuccess);`
**请求对象 (`UpdateNodePriceItemRequest`)**
```json
{
"NodePriceItemId": "int64",
"name": "string // 名称",
"isOn": "bool // 是否启用",
"bitsFrom": "int64",
"bitsTo": "int64"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NodePriceItemService/updateNodePriceItem" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---

View File

@@ -0,0 +1,286 @@
# NodeRegionService
> 节点区域相关服务
---
## createNodeRegion
> 创建区域
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/NodeRegionService/createNodeRegion`
- RPC`rpc createNodeRegion (CreateNodeRegionRequest) returns (CreateNodeRegionResponse);`
**请求对象 (`CreateNodeRegionRequest`)**
```json
{
"name": "string // 名称",
"description": "string // 描述(备注)"
}
```
**响应对象 (`CreateNodeRegionResponse`)**
```json
{
"nodeRegionId": "int64"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NodeRegionService/createNodeRegion" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## deleteNodeRegion
> 删除区域
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/NodeRegionService/deleteNodeRegion`
- RPC`rpc deleteNodeRegion (DeleteNodeRegionRequest) returns (RPCSuccess);`
**请求对象 (`DeleteNodeRegionRequest`)**
```json
{
"nodeRegionId": "int64"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NodeRegionService/deleteNodeRegion" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findAllAvailableNodeRegions
> 查找所有启用的区域
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/NodeRegionService/findAllAvailableNodeRegions`
- RPC`rpc findAllAvailableNodeRegions (FindAllAvailableNodeRegionsRequest) returns (FindAllAvailableNodeRegionsResponse);`
**请求对象 (`FindAllAvailableNodeRegionsRequest`)**
```json
{}
```
**响应对象 (`FindAllAvailableNodeRegionsResponse`)**
```json
{
"nodeRegions": "[]NodeRegion"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NodeRegionService/findAllAvailableNodeRegions" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findAllEnabledNodeRegions
> 查找所有区域
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/NodeRegionService/findAllEnabledNodeRegions`
- RPC`rpc findAllEnabledNodeRegions (FindAllEnabledNodeRegionsRequest) returns (FindAllEnabledNodeRegionsResponse);`
**请求对象 (`FindAllEnabledNodeRegionsRequest`)**
```json
{}
```
**响应对象 (`FindAllEnabledNodeRegionsResponse`)**
```json
{
"nodeRegions": "[]NodeRegion"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NodeRegionService/findAllEnabledNodeRegions" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findEnabledNodeRegion
> 查找单个区域信息
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/NodeRegionService/findEnabledNodeRegion`
- RPC`rpc findEnabledNodeRegion (FindEnabledNodeRegionRequest) returns (FindEnabledNodeRegionResponse);`
**请求对象 (`FindEnabledNodeRegionRequest`)**
```json
{
"nodeRegionId": "int64"
}
```
**响应对象 (`FindEnabledNodeRegionResponse`)**
```json
{
"nodeRegion": "NodeRegion"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NodeRegionService/findEnabledNodeRegion" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## updateNodeRegion
> 修改区域
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/NodeRegionService/updateNodeRegion`
- RPC`rpc updateNodeRegion (UpdateNodeRegionRequest) returns (RPCSuccess);`
**请求对象 (`UpdateNodeRegionRequest`)**
```json
{
"nodeRegionId": "int64",
"name": "string // 名称",
"description": "string // 描述(备注)",
"isOn": "bool // 是否启用"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NodeRegionService/updateNodeRegion" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## updateNodeRegionOrders
> 排序
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/NodeRegionService/updateNodeRegionOrders`
- RPC`rpc updateNodeRegionOrders (UpdateNodeRegionOrdersRequest) returns (RPCSuccess);`
**请求对象 (`UpdateNodeRegionOrdersRequest`)**
```json
{
"nodeRegionIds": "[]int64"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NodeRegionService/updateNodeRegionOrders" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## updateNodeRegionPrice
> 修改价格项价格
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/NodeRegionService/updateNodeRegionPrice`
- RPC`rpc updateNodeRegionPrice (UpdateNodeRegionPriceRequest) returns (RPCSuccess);`
**请求对象 (`UpdateNodeRegionPriceRequest`)**
```json
{
"nodeRegionId": "int64",
"nodeItemId": "int64",
"price": "float"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NodeRegionService/updateNodeRegionPrice" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,279 @@
# NodeTaskService
> 节点同步任务相关服务
---
## countDoingNodeTasks
> 计算正在执行的任务数量
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/NodeTaskService/countDoingNodeTasks`
- RPC`rpc countDoingNodeTasks (CountDoingNodeTasksRequest) returns (RPCCountResponse);`
**请求对象 (`CountDoingNodeTasksRequest`)**
```json
{}
```
**响应对象 (`RPCCountResponse`)**
```json
{
"count": "int64 // 数量"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NodeTaskService/countDoingNodeTasks" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## deleteAllNodeTasks
> 删除所有任务
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/NodeTaskService/deleteAllNodeTasks`
- RPC`rpc deleteAllNodeTasks(DeleteAllNodeTasksRequest) returns (RPCSuccess);`
**请求对象 (`DeleteAllNodeTasksRequest`)**
```json
{}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NodeTaskService/deleteAllNodeTasks" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## deleteNodeTask
> 删除任务
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/NodeTaskService/deleteNodeTask`
- RPC`rpc deleteNodeTask (DeleteNodeTaskRequest) returns (RPCSuccess);`
**请求对象 (`DeleteNodeTaskRequest`)**
```json
{
"nodeTaskId": "int64"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NodeTaskService/deleteNodeTask" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## deleteNodeTasks
> 批量删除任务
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/NodeTaskService/deleteNodeTasks`
- RPC`rpc deleteNodeTasks (DeleteNodeTasksRequest) returns (RPCSuccess);`
**请求对象 (`DeleteNodeTasksRequest`)**
```json
{
"nodeTaskIds": "[]int64"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NodeTaskService/deleteNodeTasks" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## existsNodeTasks
> 检查是否有正在执行的任务
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/NodeTaskService/existsNodeTasks`
- RPC`rpc existsNodeTasks (ExistsNodeTasksRequest) returns (ExistsNodeTasksResponse);`
**请求对象 (`ExistsNodeTasksRequest`)**
```json
{
"excludeTypes": "[]string"
}
```
**响应对象 (`ExistsNodeTasksResponse`)**
```json
{
"existTasks": "bool",
"existError": "bool"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NodeTaskService/existsNodeTasks" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findNodeClusterTasks
> 获取所有正在同步的集群信息
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/NodeTaskService/findNodeClusterTasks`
- RPC`rpc findNodeClusterTasks (FindNodeClusterTasksRequest) returns (FindNodeClusterTasksResponse);`
**请求对象 (`FindNodeClusterTasksRequest`)**
```json
{}
```
**响应对象 (`FindNodeClusterTasksResponse`)**
```json
{
"clusterTasks": "[]ClusterTask"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NodeTaskService/findNodeClusterTasks" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findNotifyingNodeTasks
> 查找需要通知的任务
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/NodeTaskService/findNotifyingNodeTasks`
- RPC`rpc findNotifyingNodeTasks (FindNotifyingNodeTasksRequest) returns (FindNotifyingNodeTasksResponse);`
**请求对象 (`FindNotifyingNodeTasksRequest`)**
```json
{
"size": "int64 // 数量通常不能小于0"
}
```
**响应对象 (`FindNotifyingNodeTasksResponse`)**
```json
{
"nodeTasks": "[]NodeTask"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NodeTaskService/findNotifyingNodeTasks" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## updateNodeTasksNotified
> 设置任务已通知
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/NodeTaskService/updateNodeTasksNotified`
- RPC`rpc updateNodeTasksNotified (UpdateNodeTasksNotifiedRequest) returns (RPCSuccess);`
**请求对象 (`UpdateNodeTasksNotifiedRequest`)**
```json
{
"nodeTaskIds": "[]int64"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NodeTaskService/updateNodeTasksNotified" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---

View File

@@ -0,0 +1,241 @@
# NodeThresholdService
> 节点阈值服务
---
## countAllEnabledNodeThresholds
> 计算阈值数量
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/NodeThresholdService/countAllEnabledNodeThresholds`
- RPC`rpc countAllEnabledNodeThresholds (CountAllEnabledNodeThresholdsRequest) returns (RPCCountResponse);`
**请求对象 (`CountAllEnabledNodeThresholdsRequest`)**
```json
{
"role": "string",
"nodeClusterId": "int64 // 集群ID",
"nodeId": "int64 // 节点ID"
}
```
**响应对象 (`RPCCountResponse`)**
```json
{
"count": "int64 // 数量"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NodeThresholdService/countAllEnabledNodeThresholds" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## createNodeThreshold
> 创建阈值
- 角色:`admin`, `node`
- HTTP`POST https://backend.dooki.cloud/NodeThresholdService/createNodeThreshold`
- RPC`rpc createNodeThreshold (CreateNodeThresholdRequest) returns (CreateNodeThresholdResponse);`
**请求对象 (`CreateNodeThresholdRequest`)**
```json
{
"role": "string",
"nodeClusterId": "int64 // 集群ID",
"nodeId": "int64 // 节点ID",
"item": "string",
"param": "string",
"operator": "string",
"valueJSON": "bytes",
"message": "string",
"duration": "int32",
"durationUnit": "string",
"sumMethod": "string",
"notifyDuration": "int32"
}
```
**响应对象 (`CreateNodeThresholdResponse`)**
```json
{
"nodeThresholdId": "int64"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NodeThresholdService/createNodeThreshold" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## deleteNodeThreshold
> 删除阈值
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/NodeThresholdService/deleteNodeThreshold`
- RPC`rpc deleteNodeThreshold (DeleteNodeThresholdRequest) returns (RPCSuccess);`
**请求对象 (`DeleteNodeThresholdRequest`)**
```json
{
"nodeThresholdId": "int64"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NodeThresholdService/deleteNodeThreshold" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findAllEnabledNodeThresholds
> 查询阈值
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/NodeThresholdService/findAllEnabledNodeThresholds`
- RPC`rpc findAllEnabledNodeThresholds (FindAllEnabledNodeThresholdsRequest) returns (FindAllEnabledNodeThresholdsResponse);`
**请求对象 (`FindAllEnabledNodeThresholdsRequest`)**
```json
{
"role": "string",
"nodeClusterId": "int64 // 集群ID",
"nodeId": "int64 // 节点ID"
}
```
**响应对象 (`FindAllEnabledNodeThresholdsResponse`)**
```json
{
"nodeThresholds": "[]NodeThreshold"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NodeThresholdService/findAllEnabledNodeThresholds" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findEnabledNodeThreshold
> 查询单个阈值详情
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/NodeThresholdService/findEnabledNodeThreshold`
- RPC`rpc findEnabledNodeThreshold (FindEnabledNodeThresholdRequest) returns (FindEnabledNodeThresholdResponse);`
**请求对象 (`FindEnabledNodeThresholdRequest`)**
```json
{
"nodeThresholdId": "int64"
}
```
**响应对象 (`FindEnabledNodeThresholdResponse`)**
```json
{
"nodeThreshold": "NodeThreshold"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NodeThresholdService/findEnabledNodeThreshold" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## updateNodeThreshold
> 修改阈值
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/NodeThresholdService/updateNodeThreshold`
- RPC`rpc updateNodeThreshold (UpdateNodeThresholdRequest) returns (RPCSuccess);`
**请求对象 (`UpdateNodeThresholdRequest`)**
```json
{
"nodeThresholdId": "int64",
"item": "string",
"param": "string",
"operator": "string",
"valueJSON": "bytes",
"message": "string",
"duration": "int32",
"durationUnit": "string",
"sumMethod": "string",
"isOn": "bool // 是否启用",
"notifyDuration": "int32"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NodeThresholdService/updateNodeThreshold" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---

View File

@@ -0,0 +1,122 @@
# NodeValueService
> 节点指标数据服务
---
## createNodeValue
> 记录数据
- 角色:`dns`, `user`, `node`
- HTTP`POST https://backend.dooki.cloud/NodeValueService/createNodeValue`
- RPC`rpc createNodeValue (CreateNodeValueRequest) returns (RPCSuccess);`
**请求对象 (`CreateNodeValueRequest`)**
```json
{
"item": "string",
"valueJSON": "bytes",
"createdAt": "int64"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NodeValueService/createNodeValue" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## listNodeValues
> 读取数据
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/NodeValueService/listNodeValues`
- RPC`rpc listNodeValues (ListNodeValuesRequest) returns (ListNodeValuesResponse);`
**请求对象 (`ListNodeValuesRequest`)**
```json
{
"role": "string",
"nodeId": "int64 // 节点ID",
"item": "string",
"range": "string"
}
```
**响应对象 (`ListNodeValuesResponse`)**
```json
{
"nodeValues": "[]NodeValue"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NodeValueService/listNodeValues" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## sumAllNodeValueStats
> 读取所有节点的最新数据
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/NodeValueService/sumAllNodeValueStats`
- RPC`rpc sumAllNodeValueStats(SumAllNodeValueStatsRequest) returns (SumAllNodeValueStatsResponse);`
**请求对象 (`SumAllNodeValueStatsRequest`)**
```json
{}
```
**响应对象 (`SumAllNodeValueStatsResponse`)**
```json
{
"totalTrafficBytesPerSecond": "int64",
"avgCPUUsage": "float",
"maxCPUUsage": "float",
"totalCPUCores": "int32",
"avgMemoryUsage": "float",
"maxMemoryUsage": "float",
"totalMemoryBytes": "int64",
"avgLoad1min": "float",
"maxLoad1min": "float",
"avgLoad5min": "float"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/NodeValueService/sumAllNodeValueStats" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---

View File

@@ -0,0 +1,263 @@
# OrderMethodService
> 订单支付方式相关服务
---
## createOrderMethod
> 创建支付方式
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/OrderMethodService/createOrderMethod`
- RPC`rpc createOrderMethod(CreateOrderMethodRequest) returns (CreateOrderMethodResponse);`
**请求对象 (`CreateOrderMethodRequest`)**
```json
{
"name": "string // 支付名称",
"code": "string // 支付代号",
"description": "string // 支付描述",
"url": "string // 自定义支付URL",
"parentCode": "string // 使用预设支付方式代号",
"paramsJSON": "bytes // 预设支付方式参数",
"clientType": "string",
"qrcodeTitle": "string"
}
```
**响应对象 (`CreateOrderMethodResponse`)**
```json
{
"orderMethodId": "int64"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/OrderMethodService/createOrderMethod" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## deleteOrderMethod
> 删除支付方式
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/OrderMethodService/deleteOrderMethod`
- RPC`rpc deleteOrderMethod(DeleteOrderMethodRequest) returns (RPCSuccess);`
**请求对象 (`DeleteOrderMethodRequest`)**
```json
{
"orderMethodId": "int64"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/OrderMethodService/deleteOrderMethod" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findAllAvailableOrderMethods
> 查找所有已启用的支付方式
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/OrderMethodService/findAllAvailableOrderMethods`
- RPC`rpc findAllAvailableOrderMethods(FindAllAvailableOrderMethodsRequest) returns (FindAllAvailableOrderMethodsResponse);`
**请求对象 (`FindAllAvailableOrderMethodsRequest`)**
```json
{}
```
**响应对象 (`FindAllAvailableOrderMethodsResponse`)**
```json
{
"orderMethods": "[]OrderMethod"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/OrderMethodService/findAllAvailableOrderMethods" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findAllEnabledOrderMethods
> 查找所有支付方式
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/OrderMethodService/findAllEnabledOrderMethods`
- RPC`rpc findAllEnabledOrderMethods(FindAllEnabledOrderMethodsRequest) returns (FindAllEnabledOrderMethodsResponse);`
**请求对象 (`FindAllEnabledOrderMethodsRequest`)**
```json
{}
```
**响应对象 (`FindAllEnabledOrderMethodsResponse`)**
```json
{
"orderMethods": "[]OrderMethod"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/OrderMethodService/findAllEnabledOrderMethods" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findEnabledOrderMethod
> 查找单个支付方式
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/OrderMethodService/findEnabledOrderMethod`
- RPC`rpc findEnabledOrderMethod(FindEnabledOrderMethodRequest) returns (FindEnabledOrderMethodResponse);`
**请求对象 (`FindEnabledOrderMethodRequest`)**
```json
{
"orderMethodId": "int64"
}
```
**响应对象 (`FindEnabledOrderMethodResponse`)**
```json
{
"orderMethod": "OrderMethod"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/OrderMethodService/findEnabledOrderMethod" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findEnabledOrderMethodWithCode
> 根据代号查找支付方式
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/OrderMethodService/findEnabledOrderMethodWithCode`
- RPC`rpc findEnabledOrderMethodWithCode(FindEnabledOrderMethodWithCodeRequest) returns (FindEnabledOrderMethodWithCodeResponse);`
**请求对象 (`FindEnabledOrderMethodWithCodeRequest`)**
```json
{
"code": "string"
}
```
**响应对象 (`FindEnabledOrderMethodWithCodeResponse`)**
```json
{
"orderMethod": "OrderMethod"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/OrderMethodService/findEnabledOrderMethodWithCode" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## updateOrderMethod
> 修改支付方式
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/OrderMethodService/updateOrderMethod`
- RPC`rpc updateOrderMethod(UpdateOrderMethodRequest) returns (RPCSuccess);`
**请求对象 (`UpdateOrderMethodRequest`)**
```json
{
"orderMethodId": "int64",
"name": "string // 名称",
"code": "string",
"description": "string // 描述(备注)",
"url": "string",
"paramsJSON": "bytes // 预设支付方式参数",
"isOn": "bool // 是否启用",
"clientType": "string",
"qrcodeTitle": "string"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/OrderMethodService/updateOrderMethod" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---

View File

@@ -0,0 +1,212 @@
# OriginService
> 源站管理服务
---
## createOrigin
> 创建源站
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/OriginService/createOrigin`
- RPC`rpc createOrigin (CreateOriginRequest) returns (CreateOriginResponse);`
**请求对象 (`CreateOriginRequest`)**
```json
{
"name": "string // 名称,为可选项",
"addr": "NetworkAddress // 源站网络地址",
"ossJSON": "bytes // OSS配置信息源站网络地址中protocol为oss:开头时需要设置此项",
"description": "string // 描述,为可选项",
"weight": "int32 // 权重不小于0一般设置为10",
"isOn": "bool // 是否启用一般为true",
"connTimeoutJSON": "bytes // 可选项,连接超时时间",
"readTimeoutJSON": "bytes // 可选项,读取超时时间",
"idleTimeoutJSON": "bytes // 可选项,空闲超时时间",
"maxConns": "int32 // 可选项,最大连接数",
"maxIdleConns": "int32 // 可选项,最大空闲连接数",
"domains": "[]string // 可选项,专属域名列表",
"certRefJSON": "bytes // 可选项,证书设置",
"host": "string // 可选项,回源主机名",
"followPort": "bool // 可选项,是否跟随端口",
"http2Enabled": "bool // 可选项是否支持HTTP/2只在HTTPS源站时生效"
}
```
**响应对象 (`CreateOriginResponse`)**
```json
{
"originId": "int64 // 创建的源站ID"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/OriginService/createOrigin" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findEnabledOrigin
> 查找单个源站信息
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/OriginService/findEnabledOrigin`
- RPC`rpc findEnabledOrigin (FindEnabledOriginRequest) returns (FindEnabledOriginResponse);`
**请求对象 (`FindEnabledOriginRequest`)**
```json
{
"originId": "int64 // 源站ID"
}
```
**响应对象 (`FindEnabledOriginResponse`)**
```json
{
"Origin": "Origin // 源站信息"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/OriginService/findEnabledOrigin" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findEnabledOriginConfig
> 查找源站配置
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/OriginService/findEnabledOriginConfig`
- RPC`rpc findEnabledOriginConfig (FindEnabledOriginConfigRequest) returns (FindEnabledOriginConfigResponse);`
**请求对象 (`FindEnabledOriginConfigRequest`)**
```json
{
"originId": "int64 // 源站ID"
}
```
**响应对象 (`FindEnabledOriginConfigResponse`)**
```json
{
"originJSON": "bytes // 源站信息"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/OriginService/findEnabledOriginConfig" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## updateOrigin
> 修改源站
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/OriginService/updateOrigin`
- RPC`rpc updateOrigin (UpdateOriginRequest) returns (RPCSuccess);`
**请求对象 (`UpdateOriginRequest`)**
```json
{
"originId": "int64 // 源站ID",
"name": "string // 可选项",
"addr": "NetworkAddress // 源站网络地址",
"ossJSON": "bytes // OSS配置信息源站网络地址中protocol为oss:开头时需要设置此项",
"description": "string // 可选项",
"weight": "int32 // 权重不小于0一般设置为10",
"isOn": "bool // 是否启用",
"connTimeoutJSON": "bytes // 可选项",
"readTimeoutJSON": "bytes // 可选项",
"idleTimeoutJSON": "bytes // 可选项",
"maxConns": "int32 // 可选项",
"maxIdleConns": "int32 // 可选项",
"domains": "[]string // 可选项",
"certRefJSON": "bytes // 可选项",
"host": "string // 可选项",
"followPort": "bool // 可选项",
"http2Enabled": "bool // 可选项是否支持HTTP/2只在HTTPS源站时生效"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/OriginService/updateOrigin" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## updateOriginIsOn
> 设置源站是否启用
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/OriginService/updateOriginIsOn`
- RPC`rpc updateOriginIsOn(UpdateOriginIsOnRequest) returns (RPCSuccess);`
**请求对象 (`UpdateOriginIsOnRequest`)**
```json
{
"originId": "int64 // 源站ID",
"isOn": "bool // 是否启用"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/OriginService/updateOriginIsOn" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---

View File

@@ -0,0 +1,43 @@
# PagesService
> Pages相关服务
---
## configPages
> 配置pages
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/PagesService/configPages`
- RPC`rpc configPages(PagesConfig) returns (RPCSuccess);`
**请求对象 (`PagesConfig`)**
```json
{
"storageId": "int64 // 存储ID",
"projectsPerLimit": "int64 // 项目数量限制",
"storageSizePerLimit": "int64 // 存储大小限制",
"defaultPage": "string // 默认页面",
"default404Page": "string // 默认404页面",
"isOn": "bool // 是否启用"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/PagesService/configPages" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---

View File

@@ -0,0 +1,117 @@
# PagesStorageService
> PagesStorage相关服务
---
## createPagesStorage
> 创建pages 存储
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/PagesStorageService/createPagesStorage`
- RPC`rpc createPagesStorage(CreatePagesStorageRequest) returns (CreatePagesStorageResponse);`
**请求对象 (`CreatePagesStorageRequest`)**
```json
{
"type": "string",
"name": "string // 名称",
"adminId": "int64 // 管理员ID",
"settingJSON": "bytes"
}
```
**响应对象 (`CreatePagesStorageResponse`)**
```json
{
"id": "int64"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/PagesStorageService/createPagesStorage" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## deletePagesStorage
> 删除pages 存储
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/PagesStorageService/deletePagesStorage`
- RPC`rpc deletePagesStorage(DeletePagesStorageRequest) returns (RPCSuccess);`
**请求对象 (`DeletePagesStorageRequest`)**
```json
{
"id": "int64"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/PagesStorageService/deletePagesStorage" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## listPagesStorages
> 列出pages 存储
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/PagesStorageService/listPagesStorages`
- RPC`rpc listPagesStorages(ListPagesStoragesRequest) returns (ListPagesStoragesResponse);`
**请求对象 (`ListPagesStoragesRequest`)**
```json
{
"type": "string",
"name": "string // 名称",
"adminId": "int64 // 管理员ID",
"isDeleted": "BoolValue // 是否已删除"
}
```
**响应对象 (`ListPagesStoragesResponse`)**
```json
{
"total": "int64",
"storages": "[]PagesStorage"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/PagesStorageService/listPagesStorages" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---

View File

@@ -0,0 +1,361 @@
# PlanService
> 套餐相关服务
---
## countAllEnabledPlans
> 计算套餐数量
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/PlanService/countAllEnabledPlans`
- RPC`rpc countAllEnabledPlans(CountAllEnabledPlansRequest) returns (RPCCountResponse);`
**请求对象 (`CountAllEnabledPlansRequest`)**
```json
{}
```
**响应对象 (`RPCCountResponse`)**
```json
{
"count": "int64 // 数量"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/PlanService/countAllEnabledPlans" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## createPlan
> 创建套餐
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/PlanService/createPlan`
- RPC`rpc createPlan(CreatePlanRequest) returns (CreatePlanResponse);`
**请求对象 (`CreatePlanRequest`)**
```json
{
"name": "string // 套餐名称",
"description": "string // 套餐简介",
"clusterId": "int64 // 集群ID",
"trafficLimitJSON": "bytes // 流量限制",
"bandwidthLimitPerNodeJSON": "bytes // 单节点带宽限制 json:bit_size_capacity",
"hasFullFeatures": "bool // 是否有所有权限",
"featuresJSON": "bytes // 权限列表,[code1, code2, ...]",
"priceType": "string // 价格类型traffic, bandwidth, period",
"trafficPriceJSON": "bytes // 流量价格配置",
"bandwidthPriceJSON": "bytes // 带宽价格配置",
"monthlyPrice": "float // 月度价格",
"seasonallyPrice": "float // 季度价格",
"yearlyPrice": "float // 年度价格",
"totalServers": "int32 // 可以添加的网站数",
"totalServerNamesPerServer": "int32 // 每个网站可以添加的域名数",
"totalServerNames": "int32 // 可以添加的域名总数",
"dailyRequests": "int64 // 每日访问量额度",
"monthlyRequests": "int64 // 每月访问量额度",
"dailyWebsocketConnections": "int64 // 每日Websocket连接数额度",
"monthlyWebsocketConnections": "int64 // 每月Websocket连接数额度",
"maxUploadSizeJSON": "bytes // 文件最大上传尺寸 json:size_capacity"
}
```
**响应对象 (`CreatePlanResponse`)**
```json
{
"planId": "int64"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/PlanService/createPlan" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## deletePlan
> 删除套餐
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/PlanService/deletePlan`
- RPC`rpc deletePlan(DeletePlanRequest) returns (RPCSuccess);`
**请求对象 (`DeletePlanRequest`)**
```json
{
"planId": "int64 // 套餐ID"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/PlanService/deletePlan" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findAllAvailablePlans
> 列出所有可用的套餐
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/PlanService/findAllAvailablePlans`
- RPC`rpc findAllAvailablePlans(FindAllAvailablePlansRequest) returns (FindAllAvailablePlansResponse);`
**请求对象 (`FindAllAvailablePlansRequest`)**
```json
{}
```
**响应对象 (`FindAllAvailablePlansResponse`)**
```json
{
"plans": "[]Plan // 套餐列表"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/PlanService/findAllAvailablePlans" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findBasicPlan
> 查找套餐基本信息
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/PlanService/findBasicPlan`
- RPC`rpc findBasicPlan(FindBasicPlanRequest) returns (FindBasicPlanResponse);`
**请求对象 (`FindBasicPlanRequest`)**
```json
{
"planId": "int64 // 套餐ID"
}
```
**响应对象 (`FindBasicPlanResponse`)**
```json
{
"plan": "Plan // 套餐信息(只读取基本信息)"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/PlanService/findBasicPlan" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findEnabledPlan
> 查找单个套餐
- 角色:`admin`, `user`
- HTTP`POST https://backend.dooki.cloud/PlanService/findEnabledPlan`
- RPC`rpc findEnabledPlan(FindEnabledPlanRequest) returns (FindEnabledPlanResponse);`
**请求对象 (`FindEnabledPlanRequest`)**
```json
{
"planId": "int64 // 套餐ID"
}
```
**响应对象 (`FindEnabledPlanResponse`)**
```json
{
"plan": "Plan // 套餐信息"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/PlanService/findEnabledPlan" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## listEnabledPlans
> 列出单页套餐
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/PlanService/listEnabledPlans`
- RPC`rpc listEnabledPlans(ListEnabledPlansRequest) returns (ListEnabledPlansResponse);`
**请求对象 (`ListEnabledPlansRequest`)**
```json
{
"offset": "int64 // 读取位置",
"size": "int64 // 数量通常不能小于0"
}
```
**响应对象 (`ListEnabledPlansResponse`)**
```json
{
"plans": "[]Plan // 套餐列表"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/PlanService/listEnabledPlans" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## sortPlans
> 对套餐进行排序
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/PlanService/sortPlans`
- RPC`rpc sortPlans(SortPlansRequest) returns (RPCSuccess);`
**请求对象 (`SortPlansRequest`)**
```json
{
"planIds": "[]int64 // 排序后的套餐ID列表"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/PlanService/sortPlans" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## updatePlan
> 修改套餐
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/PlanService/updatePlan`
- RPC`rpc updatePlan(UpdatePlanRequest) returns (RPCSuccess);`
**请求对象 (`UpdatePlanRequest`)**
```json
{
"planId": "int64 // 套餐ID",
"name": "string // 套餐名称",
"description": "string // 套餐简介",
"isOn": "bool // 是否启用",
"clusterId": "int64 // 集群ID",
"trafficLimitJSON": "bytes // 流量限制",
"bandwidthLimitPerNodeJSON": "bytes // 单节点带宽限制",
"hasFullFeatures": "bool // 是否有所有权限",
"featuresJSON": "bytes // 权限列表,[code1, code2, ...]",
"priceType": "string // 价格类型traffic, bandwidth, period",
"trafficPriceJSON": "bytes // 流量价格配置",
"bandwidthPriceJSON": "bytes // 带宽价格配置",
"monthlyPrice": "float // 月费用",
"seasonallyPrice": "float // 季度费用",
"yearlyPrice": "float // 年度费用",
"totalServers": "int32 // 可以添加的网站数",
"totalServerNamesPerServer": "int32 // 每个网站可以添加的域名数",
"totalServerNames": "int32 // 可以添加的域名总数",
"dailyRequests": "int64 // 每日访问量额度",
"monthlyRequests": "int64 // 每月访问量额度",
"dailyWebsocketConnections": "int64 // 每日Websocket连接数额度",
"monthlyWebsocketConnections": "int64 // 每月Websocket连接数额度",
"maxUploadSizeJSON": "bytes // 文件最大上传尺寸 json:size_capacity"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/PlanService/updatePlan" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---

View File

@@ -0,0 +1,216 @@
# PostCategoryService
> 文章分类管理服务
---
## createPostCategory
> 创建分类
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/PostCategoryService/createPostCategory`
- RPC`rpc createPostCategory(CreatePostCategoryRequest) returns (CreatePostCategoryResponse);`
**请求对象 (`CreatePostCategoryRequest`)**
```json
{
"name": "string // 分类名称",
"code": "string // 分类代号"
}
```
**响应对象 (`CreatePostCategoryResponse`)**
```json
{
"postCategoryId": "int64 // 分类ID"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/PostCategoryService/createPostCategory" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## deletePostCategory
> 删除分类
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/PostCategoryService/deletePostCategory`
- RPC`rpc deletePostCategory(DeletePostCategoryRequest) returns (RPCSuccess);`
**请求对象 (`DeletePostCategoryRequest`)**
```json
{
"postCategoryId": "int64 // 分类ID"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/PostCategoryService/deletePostCategory" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findAllPostCategories
> 列出所有分类
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/PostCategoryService/findAllPostCategories`
- RPC`rpc findAllPostCategories(FindAllPostCategoriesRequest) returns (FindAllPostCategoriesResponse);`
**请求对象 (`FindAllPostCategoriesRequest`)**
```json
{}
```
**响应对象 (`FindAllPostCategoriesResponse`)**
```json
{
"postCategories": "[]PostCategory // 分类列表"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/PostCategoryService/findAllPostCategories" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## findPostCategory
> 查询单个分类
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/PostCategoryService/findPostCategory`
- RPC`rpc findPostCategory(FindPostCategoryRequest) returns (FindPostCategoryResponse);`
**请求对象 (`FindPostCategoryRequest`)**
```json
{
"postCategoryId": "int64 // 分类ID"
}
```
**响应对象 (`FindPostCategoryResponse`)**
```json
{
"postCategory": "PostCategory // 分类信息"
}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/PostCategoryService/findPostCategory" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## sortPostCategories
> 对分类进行排序
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/PostCategoryService/sortPostCategories`
- RPC`rpc sortPostCategories(SortPostCategoriesRequest) returns (RPCSuccess);`
**请求对象 (`SortPostCategoriesRequest`)**
```json
{
"postCategoryIds": "[]int64 // 分类ID列表"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/PostCategoryService/sortPostCategories" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---
## updatePostCategory
> 修改分类
- 角色:`admin`
- HTTP`POST https://backend.dooki.cloud/PostCategoryService/updatePostCategory`
- RPC`rpc updatePostCategory(UpdatePostCategoryRequest) returns (RPCSuccess);`
**请求对象 (`UpdatePostCategoryRequest`)**
```json
{
"postCategoryId": "int64 // 分类ID",
"name": "string // 分类名称",
"code": "string // 分类代号",
"isOn": "bool // 是否启用"
}
```
**响应对象 (`RPCSuccess`)**
```json
{}
```
**调用示例**
```bash
curl -X POST "https://backend.dooki.cloud/PostCategoryService/updatePostCategory" \
-H "Content-Type: application/json" \
-H "X-Edge-Access-Token: <YOUR_TOKEN>" \
-d '{
...
}'
```
---

Some files were not shown because too many files have changed in this diff Show More