API 调用文档
基础配置
认证机制
每个 API 请求都需要在 headers 中包含以下认证信息:
签名生成规则
- 将所有请求参数按键名排序
- 拼接成
key=value&格式字符串 - 追加
nonce=随机字符串×tamp=时间戳应用密钥 - 对最终字符串进行 MD5 加密
// 签名生成函数
function generateHeaders(params) {
const timestamp = Math.floor(Date.now() / 1000).toString();
const nonce = Math.random().toString(36).substring(2, 10);
// 构建待签名字符串
const sortedParams = Object.keys(params).sort().reduce((obj, key) => {
obj[key] = params[key];
return obj;
}, {});
let signString = '';
Object.keys(sortedParams).forEach(key => {
signString += `${key}=${sortedParams[key]}&`;
});
signString += `nonce=${nonce}×tamp=${timestamp}${appSecret}`;
// 计算MD5签名
const sign = crypto.createHash('md5').update(signString).digest('hex');
return {
'sign': sign,
'timestamp': timestamp,
'nonce': nonce,
'appId': appId
};
}
API 接口列表
1. 获取机器列表
- 接口地址:
/api/open/machines - 请求方法: GET
- 请求参数: 无
- 调用方法: getMachines()
async function getMachines() {
try {
const params = {};
const headers = generateHeaders(params);
const response = await axios.get(`${baseUrl}/api/open/machines`, {
headers: headers
});
return response.data;
} catch (error) {
// 错误处理
throw error;
}
}
2. 获取记录数据
- 接口地址:
/api/open/records - 请求方法: GET
请求参数:
start: 开始时间(格式: 'YYYY-MM-DD HH:mm')machineId: 机器ID
调用方法:
getRecords(start, machineId)
async function getRecords(start, machineId) {
try {
const params = {
start: start,
machineId: machineId
};
const headers = generateHeaders(params);
const response = await axios.get(`${baseUrl}/api/open/records`, {
params: params,
headers: headers
});
return response.data;
} catch (error) {
// 错误处理
throw error;
}
}
使用示例
// 主函数调用示例
async function main(){
// 获取机器列表
const machineList = await getMachines();
console.log(machineList);
// 获取指定机器的记录数据
const start = '2025-10-01 00:00';
const machineId = 884;
getRecords(start, machineId)
.then(data => {
console.log('Successfully retrieved records');
})
.catch(error => {
console.error('Failed to retrieve records');
});
}
错误处理
所有 API 调用都包含完整的错误处理机制,会分别处理 HTTP 响应错误和其他网络错误,并输出详细错误信息到控制台。