Files
nxxmdata/backend/swagger-devices.js
2025-11-17 09:18:31 +08:00

132 lines
3.8 KiB
JavaScript

/**
* 设备管理模块 Swagger 文档
* @file swagger-devices.js
* @description 设备管理相关的 Swagger API 文档定义
*/
// 设备管理相关的 API 路径定义
const devicesPaths = {
'/api/devices': {
get: {
summary: '获取所有设备',
tags: ['设备管理'],
parameters: [
{ $ref: '#/components/parameters/PageParam' },
{ $ref: '#/components/parameters/LimitParam' },
{ $ref: '#/components/parameters/SearchParam' }
],
responses: {
200: { $ref: '#/components/responses/Success' }
}
},
post: {
summary: '创建设备',
tags: ['设备管理'],
requestBody: {
required: true,
content: {
'application/json': {
schema: { $ref: '#/components/schemas/DeviceInput' }
}
}
},
responses: {
201: { $ref: '#/components/responses/Created' },
400: { $ref: '#/components/responses/BadRequest' }
}
}
},
'/api/devices/{id}': {
get: {
summary: '根据ID获取设备',
tags: ['设备管理'],
parameters: [{ $ref: '#/components/parameters/IdParam' }],
responses: {
200: { $ref: '#/components/responses/Success' },
404: { $ref: '#/components/responses/NotFound' }
}
},
put: {
summary: '更新设备信息',
tags: ['设备管理'],
parameters: [{ $ref: '#/components/parameters/IdParam' }],
requestBody: {
required: true,
content: {
'application/json': {
schema: { $ref: '#/components/schemas/DeviceInput' }
}
}
},
responses: {
200: { $ref: '#/components/responses/Success' },
404: { $ref: '#/components/responses/NotFound' }
}
},
delete: {
summary: '删除设备',
tags: ['设备管理'],
parameters: [{ $ref: '#/components/parameters/IdParam' }],
responses: {
200: { $ref: '#/components/responses/Success' },
404: { $ref: '#/components/responses/NotFound' }
}
}
},
'/api/devices/stats/status': {
get: {
summary: '获取设备状态统计',
tags: ['设备管理'],
responses: {
200: { $ref: '#/components/responses/Success' }
}
}
},
'/api/devices/stats/type': {
get: {
summary: '获取设备类型统计',
tags: ['设备管理'],
responses: {
200: { $ref: '#/components/responses/Success' }
}
}
}
};
// 设备管理相关的数据模型定义
const devicesSchemas = {
Device: {
type: 'object',
properties: {
id: { type: 'integer', description: '设备ID' },
deviceId: { type: 'string', description: '设备编号' },
name: { type: 'string', description: '设备名称' },
type: { type: 'string', description: '设备类型' },
status: { type: 'string', enum: ['online', 'offline', 'fault'], description: '设备状态' },
batteryLevel: { type: 'integer', description: '电池电量' },
location: { type: 'string', description: '位置信息' },
farmId: { type: 'integer', description: '养殖场ID' },
animalId: { type: 'integer', description: '绑定的动物ID' },
createdAt: { type: 'string', format: 'date-time', description: '创建时间' },
updatedAt: { type: 'string', format: 'date-time', description: '更新时间' }
}
},
DeviceInput: {
type: 'object',
required: ['deviceId', 'name', 'type'],
properties: {
deviceId: { type: 'string', description: '设备编号' },
name: { type: 'string', description: '设备名称' },
type: { type: 'string', description: '设备类型' },
farmId: { type: 'integer', description: '养殖场ID' },
animalId: { type: 'integer', description: '绑定的动物ID' }
}
}
};
module.exports = {
devicesPaths,
devicesSchemas
};