Files
nxxmdata/backend/swagger-animals.js

91 lines
2.8 KiB
JavaScript
Raw Normal View History

/**
* 动物管理模块 Swagger 文档
* @file swagger-animals.js
* @description 动物管理相关的 Swagger API 文档定义
*/
// 动物管理相关的 API 路径定义
const animalsPaths = {
'/api/animals': {
get: {
summary: '获取所有动物',
tags: ['动物管理'],
parameters: [
{ $ref: '#/components/parameters/PageParam' },
{ $ref: '#/components/parameters/LimitParam' },
{ $ref: '#/components/parameters/SearchParam' }
],
responses: {
200: { $ref: '#/components/responses/Success' }
}
}
},
'/api/animals/public': {
get: {
summary: '获取所有动物(公开接口)',
tags: ['动物管理'],
responses: {
200: { $ref: '#/components/responses/Success' }
}
}
},
'/api/animals/binding-info/{collarNumber}': {
get: {
summary: '获取动物绑定信息',
tags: ['动物管理'],
parameters: [
{
name: 'collarNumber',
in: 'path',
required: true,
schema: { type: 'string' },
description: '项圈编号'
}
],
responses: {
200: { $ref: '#/components/responses/Success' },
404: { $ref: '#/components/responses/NotFound' }
}
}
}
};
// 动物管理相关的数据模型定义
const animalsSchemas = {
Animal: {
type: 'object',
properties: {
id: { type: 'integer', description: '动物ID' },
earNumber: { type: 'string', description: '耳标号' },
collarNumber: { type: 'string', description: '项圈编号' },
name: { type: 'string', description: '动物名称' },
breed: { type: 'string', description: '品种' },
sex: { type: 'string', enum: ['公', '母'], description: '性别' },
birthDate: { type: 'string', format: 'date', description: '出生日期' },
farmId: { type: 'integer', description: '养殖场ID' },
penId: { type: 'integer', description: '圈舍ID' },
status: { type: 'string', description: '状态' },
createdAt: { type: 'string', format: 'date-time', description: '创建时间' },
updatedAt: { type: 'string', format: 'date-time', description: '更新时间' }
}
},
AnimalBindingInfo: {
type: 'object',
properties: {
basicInfo: { type: 'object', description: '基础信息' },
birthInfo: { type: 'object', description: '出生信息' },
pedigreeInfo: { type: 'object', description: '族谱信息' },
insuranceInfo: { type: 'object', description: '保险信息' },
loanInfo: { type: 'object', description: '贷款信息' },
deviceInfo: { type: 'object', description: '设备信息' },
farmInfo: { type: 'object', description: '农场信息' }
}
}
};
module.exports = {
animalsPaths,
animalsSchemas
};