refactor(api): 将WebChatUpgrade接口更新为Upgrade_V2并调整相关字段
更新API端点从WebChatUpgrade改为Upgrade_V2,同时将响应字段Data更名为Message 修改涉及README文档、API规范、控制器和客户端代码,保持接口变更的一致性
This commit is contained in:
@@ -2,7 +2,7 @@
|
||||
|
||||
## Overview
|
||||
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
|
||||
1. Install dependencies: `npm install`
|
||||
|
||||
@@ -13,14 +13,14 @@ nodejs 24.10.0
|
||||
pm2 部署
|
||||
|
||||
升级接口:
|
||||
https://www.boonlive-rcu.com/api/WebChatUpgrade
|
||||
https://www.boonlive-rcu.com/api/Upgrade_V2
|
||||
Post方法,form表单
|
||||
参数:
|
||||
roomtype_id=2 释义:房型编号(目前固定值,需要通过env配置文件修改)
|
||||
host_list_str=[1,2,3] 释义:主机 编号ID (目前固定值,需要通过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
|
||||
@@ -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 (升级的房型编号)
|
||||
-3,host_str (升级的主机编号ID列表)
|
||||
-4,fileName (升级的文件名)
|
||||
@@ -58,7 +58,7 @@ HostIDList=[1,2,3] 释义:主机 编号ID (目前固定值,需要通过env
|
||||
-9,固件版本号
|
||||
-10,其他你认为必要的字段
|
||||
而且,不是每次调用这个查询接口都写库,只记录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配置文件中。
|
||||
|
||||
@@ -5,7 +5,7 @@ info:
|
||||
description: Specification for RCU Upgrade Service API interactions and data models.
|
||||
|
||||
paths:
|
||||
/api/WebChatUpgrade:
|
||||
/api/Upgrade_V2:
|
||||
post:
|
||||
summary: Trigger Upgrade
|
||||
operationId: triggerUpgrade
|
||||
@@ -63,7 +63,7 @@ components:
|
||||
properties:
|
||||
IsSuccess:
|
||||
type: boolean
|
||||
Data:
|
||||
Message:
|
||||
type: string
|
||||
required:
|
||||
- IsSuccess
|
||||
|
||||
@@ -16,16 +16,16 @@ const triggerUpgrade = async (roomtype_id, host_list, fileName) => {
|
||||
params.append('host_list_str', JSON.stringify(host_list));
|
||||
params.append('fileName', fileName);
|
||||
|
||||
console.log('[WebChatUpgrade] Request', {
|
||||
console.log('[Upgrade_V2] Request', {
|
||||
roomtype_id,
|
||||
host_list_str: host_list,
|
||||
fileName
|
||||
});
|
||||
const response = await apiClient.post('/WebChatUpgrade', params);
|
||||
console.log('[WebChatUpgrade] Response', response.data);
|
||||
const response = await apiClient.post('/Upgrade_V2', params);
|
||||
console.log('[Upgrade_V2] Response', response.data);
|
||||
return response.data;
|
||||
} catch (error) {
|
||||
console.error('Error calling WebChatUpgrade:', error.message);
|
||||
console.error('Error calling Upgrade_V2:', error.message);
|
||||
throw error;
|
||||
}
|
||||
};
|
||||
|
||||
@@ -33,7 +33,7 @@ const processGroup = async (group, groupIdx) => {
|
||||
try {
|
||||
const upgradeRes = await apiClient.triggerUpgrade(roomtype_id, hostList, fileName);
|
||||
if (!upgradeRes.IsSuccess) {
|
||||
console.error(`[${stateKey}] Upgrade trigger failed: ${upgradeRes.Data}`);
|
||||
console.error(`[${stateKey}] Upgrade trigger failed: ${upgradeRes.Message}`);
|
||||
return;
|
||||
}
|
||||
} catch (e) {
|
||||
|
||||
Reference in New Issue
Block a user