API#
Документ фиксирует реализованный baseline MVP API для poultry-модулей.
1. Общие правила#
Префикс:
/api/v1.Формат:
list/scheme+ команды.Envelope:
item/list + meta.request_id/meta.timestamp.Изоляция:
tenant_id,industry_code=poultry,site_id,house_id(где применимо).
2. Группы endpoint-ов#
2.1. Poultry Climate#
GET /api/v1/poultry-climate/schemeGET /api/v1/poultry-climate/listPOST /api/v1/poultry-climate/commands/setpointPOST /api/v1/poultry-climate/commands/ackPOST /api/v1/poultry-climate/commands/telemetryPOST /api/v1/poultry-climate/sensors/commands/ingest
Минимальные фильтры list:
tenant_id,site_id,house_id,batch_id,age_phase,limit,offset.
Adapter-правила:
setpointдолжен возвращать статус диспетчеризации в климат-контроллер;telemetryпринимает telemetry-контур (temp/rh/co2/nh3/ventilation) и возвращает оценку отклонений по активному профилю.sensors/ingestпринимает адаптерные показания датчиков среды (T/RH/pressure/gas) и нормализует их в общий telemetry payload.
2.2. Poultry Flock#
GET /api/v1/poultry-flock/schemeGET /api/v1/poultry-flock/list
Примечание:
batch lifecycle команды для
poultry-flockне входят в текущий runtime baseline и не публикуются в OpenAPI до отдельной реализации.
2.3. Poultry Feedwater#
GET /api/v1/poultry-feedwater/schemeGET /api/v1/poultry-feedwater/listPOST /api/v1/poultry-feedwater/commands/ingest
2.4. Poultry Production#
GET /api/v1/poultry-production/schemeGET /api/v1/poultry-production/listPOST /api/v1/poultry-production/commands/ingest
2.5. Poultry Alarms#
GET /api/v1/poultry-alarms/schemeGET /api/v1/poultry-alarms/listPOST /api/v1/poultry-alarms/commands/publishPOST /api/v1/poultry-alarms/commands/ack
Обязательные поля alarm-события:
alarm_code,severity,priority,tenant_id,industry_code,site_id,house_id,correlation_id,timestamp.
3. Профили нормативов poultry#
GET /api/v1/poultry-profiles/schemeGET /api/v1/poultry-profiles/listPOST /api/v1/poultry-profiles/commands/export-yamlPOST /api/v1/poultry-profiles/commands/import-yamlPOST /api/v1/poultry-profiles/commands/publishPOST /api/v1/poultry-profiles/commands/rollback
Правила:
версии
draft/published/archived;rollback как новый publish с
rollback_of;совместимость импорта по
industry_code=poultryиequipment_profile.
4. Bridge в общий status#
Для severity=critical|high:
poultry alarm-bus публикует событие в
status;в обеих системах одинаковый
correlation_id;statusхранит агрегат, poultry-контур хранит детали и эскалацию.
5. Минимальные схемы payload#
5.1. Пример POST /api/v1/poultry-climate/commands/setpoint#
{
"item": {
"tenant_id": "tenant-a",
"site_id": "site-a",
"house_id": "house-1",
"batch_id": "batch-2026-03",
"age_phase": "broiler_day_8_14",
"temperature_target_c": 29.0,
"humidity_target_pct": 60,
"ventilation_mode": "minimum",
"reason": "phase_switch"
}
}
5.2. Пример POST /api/v1/poultry-climate/commands/telemetry#
{
"item": {
"tenant_id": "tenant-a",
"site_id": "site-a",
"house_id": "house-1",
"batch_id": "batch-2026-03",
"age_phase_id": "broiler-day-8-14",
"source": "ctrl-climatepro",
"temp_c": 34.7,
"humidity_percent": 69.0,
"co2_ppm": 2810,
"nh3_ppm": 17.0,
"ventilation_percent": 14.0
}
}
5.3. Пример POST /api/v1/poultry-climate/sensors/commands/ingest#
{
"item": {
"tenant_id": "tenant-a",
"site_id": "site-a",
"house_id": "house-1",
"batch_id": "batch-2026-03",
"source": "sensor-gateway-1",
"readings": [
{ "sensor_type": "temperature_c", "device_id": "tmp-01", "value": 33.9, "unit": "C" },
{ "sensor_type": "humidity_percent", "device_id": "rh-01", "value": 67.1, "unit": "%" },
{ "sensor_type": "pressure_pa", "device_id": "prs-01", "value": 41, "unit": "Pa" },
{ "sensor_type": "co2_ppm", "device_id": "co2-01", "value": 2480, "unit": "ppm" },
{ "sensor_type": "nh3_ppm", "device_id": "nh3-01", "value": 11.4, "unit": "ppm" }
]
}
}
5.4. Пример POST /api/v1/poultry-alarms/commands/publish#
{
"item": {
"tenant_id": "tenant-a",
"industry_code": "poultry",
"site_id": "site-a",
"house_id": "house-1",
"alarm_code": "poultry_temp_high",
"severity": "critical",
"priority": "P1",
"title": "Температура выше порога",
"message": "House-1: temp=34.1C > 33C",
"correlation_id": "corr-20260305-001",
"timestamp": "2026-03-05T13:20:00Z"
}
}
6. План реализации (связка с tasks)#
Реализовать
scheme|listдля 5 poultry-модулей.Добавить команды управления (
setpoint,ack, batch lifecycle).Подключить профильный контур
poultry-profiles/*с YAML/versioning/rollback.Добавить poultry alarm-bus и bridge в
status.Зафиксировать contract tests по envelope/meta/error и
correlation_id.