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

520 lines
10 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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 '{
...
}'
```
---