API#

Документ фиксирует целевой MVP backend API для swine-модулей в формате scheme|list + ingest/commands.

1. Общие правила#

  • Префикс: /api/v1

  • Envelope: item/list + meta.request_id/meta.timestamp

  • Изоляция: tenant_id, industry_code=swine, site_id, house_id (или barn_id)

  • Пагинация list: limit, offset

2. Модули и endpoint-ы#

2.1. Swine Climate#

  • GET /api/v1/swine-climate/scheme

  • GET /api/v1/swine-climate/list

  • POST /api/v1/swine-climate/commands/setpoint

  • POST /api/v1/swine-climate/commands/telemetry

  • POST /api/v1/swine-climate/sensors/commands/ingest

List-фильтры:

  • q, house_id, batch_id, age_phase_id, subtype, state, current_age_days, age_mode

2.2. Swine Feeding#

  • GET /api/v1/swine-feeding/scheme

  • GET /api/v1/swine-feeding/list

  • POST /api/v1/swine-feeding/commands/ingest

List-фильтры:

  • q, house_id, batch_id, group_id, phase_id, status

2.3. Swine Water#

  • GET /api/v1/swine-water/scheme

  • GET /api/v1/swine-water/list

  • POST /api/v1/swine-water/commands/ingest

List-фильтры:

  • q, house_id, batch_id, line_id, status

2.4. Swine Production#

  • GET /api/v1/swine-production/scheme

  • GET /api/v1/swine-production/list

  • GET /api/v1/swine-production/kpi

  • POST /api/v1/swine-production/commands/ingest

List/KPI-фильтры:

  • q, house_id, batch_id, metric_date, window_days, subtype

2.5. Swine Biosecurity#

  • GET /api/v1/swine-biosecurity/scheme

  • GET /api/v1/swine-biosecurity/list

  • POST /api/v1/swine-biosecurity/commands/ingest

  • POST /api/v1/swine-biosecurity/commands/ack

List-фильтры:

  • q, site_id, zone_id, event_code, severity, status

3. Ingest-контуры (целевой baseline)#

3.1. Climate telemetry contour#

  • Источники:

    • контроллер микроклимата (swine-bigfarmnet-climatepro-v1)

    • sensor gateway fallback

  • Поток:

    1. POST /swine-climate/telemetry (controller primary)

    2. POST /swine-climate/sensors/ingest (fallback/secondary)

    3. диагностические флаги и bridge критических событий в status

3.2. Feed/Water counters contour#

  • Источники:

    • feed/water gateway

    • ручной fallback input

  • Поток:

    1. POST /swine-feeding/ingest

    2. POST /swine-water/ingest

    3. расчет deviation_pct и status=ok|warn|alarm

3.3. Production & biosecurity contour#

  • Источники:

    • production batch snapshots

    • biosecurity external service

  • Поток:

    1. POST /swine-production/ingest

    2. POST /swine-biosecurity/ingest

    3. агрегаты KPI (GET /swine-production/kpi) и тревоги P1/P2

4. Примеры payload#

4.1. POST /api/v1/swine-climate/commands/telemetry#

{
  "item": {
    "tenant_id": "tenant-a",
    "site_id": "site-a",
    "house_id": "barn-02",
    "batch_id": "batch-swine-2026-03",
    "temp_c": 24.8,
    "humidity_percent": 67.1,
    "co2_ppm": 2100,
    "nh3_ppm": 8.2,
    "timestamp": "2026-03-06T00:10:00Z"
  }
}

4.2. POST /api/v1/swine-water/commands/ingest#

{
  "item": {
    "tenant_id": "tenant-a",
    "site_id": "site-a",
    "house_id": "barn-02",
    "batch_id": "batch-swine-2026-03",
    "water_l_per_head_day": 6.4,
    "pressure_kpa": 180,
    "source": "swine-feedwater-gateway-v1",
    "timestamp": "2026-03-06T00:15:00Z"
  }
}

4.3. POST /api/v1/swine-biosecurity/commands/ingest#

{
  "item": {
    "tenant_id": "tenant-a",
    "site_id": "site-a",
    "zone_id": "zone-quarantine-1",
    "event_code": "ppe_violation",
    "severity": "high",
    "comment": "door opened without sanitization",
    "timestamp": "2026-03-06T00:17:00Z"
  }
}