refactor(api): 将WebChatUpgrade接口更新为Upgrade_V2并调整相关字段
更新API端点从WebChatUpgrade改为Upgrade_V2,同时将响应字段Data更名为Message 修改涉及README文档、API规范、控制器和客户端代码,保持接口变更的一致性
This commit is contained in:
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
## Overview
|
## Overview
|
||||||
Node.js backend service to manage RCU firmware upgrades.
|
Node.js backend service to manage RCU firmware upgrades.
|
||||||
Triggers upgrades via `WebChatUpgrade` API and polls status via `QueryUpdateHostProgressBar`.
|
Triggers upgrades via `Upgrade_V2` API and polls status via `QueryUpdateHostProgressBar`.
|
||||||
|
|
||||||
## Setup
|
## Setup
|
||||||
1. Install dependencies: `npm install`
|
1. Install dependencies: `npm install`
|
||||||
|
|||||||
@@ -13,14 +13,14 @@ nodejs 24.10.0
|
|||||||
pm2 部署
|
pm2 部署
|
||||||
|
|
||||||
升级接口:
|
升级接口:
|
||||||
https://www.boonlive-rcu.com/api/WebChatUpgrade
|
https://www.boonlive-rcu.com/api/Upgrade_V2
|
||||||
Post方法,form表单
|
Post方法,form表单
|
||||||
参数:
|
参数:
|
||||||
roomtype_id=2 释义:房型编号(目前固定值,需要通过env配置文件修改)
|
roomtype_id=2 释义:房型编号(目前固定值,需要通过env配置文件修改)
|
||||||
host_list_str=[1,2,3] 释义:主机 编号ID (目前固定值,需要通过env配置文件修改)
|
host_list_str=[1,2,3] 释义:主机 编号ID (目前固定值,需要通过env配置文件修改)
|
||||||
fileName=1.bin 释义:固件的名字 (目前固定值,需要通过env配置文件修改)
|
fileName=1.bin 释义:固件的名字 (目前固定值,需要通过env配置文件修改)
|
||||||
返回值:
|
返回值:
|
||||||
{"IsSuccess":true,"Data":"升级中"} IsSuccess释义:是否成功,成功返回true,失败返回false Data 释义:返回信息
|
{"IsSuccess":true,"Message":"升级中"} IsSuccess释义:是否成功,成功返回true,失败返回false Message 释义:返回信息
|
||||||
|
|
||||||
查询升级完成接口:
|
查询升级完成接口:
|
||||||
https://www.boonlive-rcu.com/api/QueryUpdateHostProgressBar
|
https://www.boonlive-rcu.com/api/QueryUpdateHostProgressBar
|
||||||
@@ -47,7 +47,7 @@ HostIDList=[1,2,3] 释义:主机 编号ID (目前固定值,需要通过env
|
|||||||
}
|
}
|
||||||
|
|
||||||
上述内容里,需要记入数据库的字段有:
|
上述内容里,需要记入数据库的字段有:
|
||||||
-1,开始升级时间(初次调用WebChatUpgrade接口时间,格式:yyyy-MM-dd HH:mm:ss)
|
-1,开始升级时间(初次调用Upgrade_V2接口时间,格式:yyyy-MM-dd HH:mm:ss)
|
||||||
-2,roomtype_id (升级的房型编号)
|
-2,roomtype_id (升级的房型编号)
|
||||||
-3,host_str (升级的主机编号ID列表)
|
-3,host_str (升级的主机编号ID列表)
|
||||||
-4,fileName (升级的文件名)
|
-4,fileName (升级的文件名)
|
||||||
@@ -58,7 +58,7 @@ HostIDList=[1,2,3] 释义:主机 编号ID (目前固定值,需要通过env
|
|||||||
-9,固件版本号
|
-9,固件版本号
|
||||||
-10,其他你认为必要的字段
|
-10,其他你认为必要的字段
|
||||||
而且,不是每次调用这个查询接口都写库,只记录5分钟内最后一次返回值的Upgrade_status字段到status里;如果所有对象的Upgrade_status都为升级完成或超时失败,则直接结束,不需要等待5分钟。
|
而且,不是每次调用这个查询接口都写库,只记录5分钟内最后一次返回值的Upgrade_status字段到status里;如果所有对象的Upgrade_status都为升级完成或超时失败,则直接结束,不需要等待5分钟。
|
||||||
例如:调用接口:参数:roomtype_id=2,host_list_str=[1,2,3]。写库3行,分别host_str是1,2,3。然后调用接口QueryUpdateHostProgressBar:参数:roomtype_id=2,HostIDList=[1,2,3]。返回值里,Response里的Upgrade_status字段为升级完成的那次调用里的信息,记录到数据库,(逐个记录,例如1为升级成功,其余两个无记录,则先记录1,等2升级成功,再记录2,以此类推)。这里需要用uuid来确保是同一次调用。每次调用WebChatUpgrade,都应该创建新的数据库行数据。
|
例如:调用接口:参数:roomtype_id=2,host_list_str=[1,2,3]。写库3行,分别host_str是1,2,3。然后调用接口QueryUpdateHostProgressBar:参数:roomtype_id=2,HostIDList=[1,2,3]。返回值里,Response里的Upgrade_status字段为升级完成的那次调用里的信息,记录到数据库,(逐个记录,例如1为升级成功,其余两个无记录,则先记录1,等2升级成功,再记录2,以此类推)。这里需要用uuid来确保是同一次调用。每次调用Upgrade_V2,都应该创建新的数据库行数据。
|
||||||
|
|
||||||
另外
|
另外
|
||||||
需要把 https://www.boonlive-rcu.com/api 作为一个常量,放在env配置文件中。
|
需要把 https://www.boonlive-rcu.com/api 作为一个常量,放在env配置文件中。
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ info:
|
|||||||
description: Specification for RCU Upgrade Service API interactions and data models.
|
description: Specification for RCU Upgrade Service API interactions and data models.
|
||||||
|
|
||||||
paths:
|
paths:
|
||||||
/api/WebChatUpgrade:
|
/api/Upgrade_V2:
|
||||||
post:
|
post:
|
||||||
summary: Trigger Upgrade
|
summary: Trigger Upgrade
|
||||||
operationId: triggerUpgrade
|
operationId: triggerUpgrade
|
||||||
@@ -63,7 +63,7 @@ components:
|
|||||||
properties:
|
properties:
|
||||||
IsSuccess:
|
IsSuccess:
|
||||||
type: boolean
|
type: boolean
|
||||||
Data:
|
Message:
|
||||||
type: string
|
type: string
|
||||||
required:
|
required:
|
||||||
- IsSuccess
|
- IsSuccess
|
||||||
|
|||||||
@@ -16,16 +16,16 @@ const triggerUpgrade = async (roomtype_id, host_list, fileName) => {
|
|||||||
params.append('host_list_str', JSON.stringify(host_list));
|
params.append('host_list_str', JSON.stringify(host_list));
|
||||||
params.append('fileName', fileName);
|
params.append('fileName', fileName);
|
||||||
|
|
||||||
console.log('[WebChatUpgrade] Request', {
|
console.log('[Upgrade_V2] Request', {
|
||||||
roomtype_id,
|
roomtype_id,
|
||||||
host_list_str: host_list,
|
host_list_str: host_list,
|
||||||
fileName
|
fileName
|
||||||
});
|
});
|
||||||
const response = await apiClient.post('/WebChatUpgrade', params);
|
const response = await apiClient.post('/Upgrade_V2', params);
|
||||||
console.log('[WebChatUpgrade] Response', response.data);
|
console.log('[Upgrade_V2] Response', response.data);
|
||||||
return response.data;
|
return response.data;
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error('Error calling WebChatUpgrade:', error.message);
|
console.error('Error calling Upgrade_V2:', error.message);
|
||||||
throw error;
|
throw error;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ const processGroup = async (group, groupIdx) => {
|
|||||||
try {
|
try {
|
||||||
const upgradeRes = await apiClient.triggerUpgrade(roomtype_id, hostList, fileName);
|
const upgradeRes = await apiClient.triggerUpgrade(roomtype_id, hostList, fileName);
|
||||||
if (!upgradeRes.IsSuccess) {
|
if (!upgradeRes.IsSuccess) {
|
||||||
console.error(`[${stateKey}] Upgrade trigger failed: ${upgradeRes.Data}`);
|
console.error(`[${stateKey}] Upgrade trigger failed: ${upgradeRes.Message}`);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
|
|||||||
Reference in New Issue
Block a user