# 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: " \ -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: " \ -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: " \ -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: " \ -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: " \ -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: " \ -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: " \ -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: " \ -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: " \ -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: " \ -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: " \ -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: " \ -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: " \ -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: " \ -d '{ ... }' ``` ---