Endpoints de Qualidade da Água
Visão Geral
Seção intitulada “Visão Geral”A API de Qualidade da Água fornece monitoramento abrangente de parâmetros da água com alertas automáticos baseados em limites ótimos para criação de camarões.
Todos os endpoints requerem autenticação.
Authorization: Bearer <token>Parâmetros Monitorados
Seção intitulada “Parâmetros Monitorados”| Parâmetro | Unidade | Faixa Ótima | Limite de Alerta |
|---|---|---|---|
| Temperatura | °C | 26-32 | < 26 ou > 32 |
| Oxigênio Dissolvido (OD) | mg/L | > 4.0 | < 4.0 |
| pH | - | 7.5-8.5 | < 7.5 ou > 8.5 |
| Salinidade | ppt | 15-25 | - |
| Alcalinidade | mg/L CaCO₃ | 80-150 | < 80 |
| Amônia (NH₃) | mg/L | < 0.1 | > 0.1 |
| Nitrito (NO₂) | mg/L | < 0.1 | > 0.1 |
| Nitrato (NO₃) | mg/L | < 20 | > 20 |
| Transparência | cm | 30-40 | - |
POST /water-quality/
Seção intitulada “POST /water-quality/”Registrar uma medição de qualidade da água.
Requisição
Seção intitulada “Requisição”POST /api/v1/water-quality/Authorization: Bearer <token>Content-Type: application/json{ "pond_id": "pond-uuid", "measurement_date": "2026-02-19T10:00:00Z", "temperature": 28.5, "dissolved_oxygen": 5.2, "ph": 7.8, "salinity": 18.0, "alkalinity": 120.0, "ammonia": 0.05, "nitrite": 0.02, "nitrate": 5.0, "transparency": 35.0, "notes": "Medição matinal - condições estáveis"}Resposta 201 Created
Seção intitulada “Resposta 201 Created”{ "id": "550e8400-e29b-41d4-a716-446655440000", "pond_id": "pond-uuid", "measurement_date": "2026-02-19T10:00:00Z", "temperature": 28.5, "dissolved_oxygen": 5.2, "ph": 7.8, "salinity": 18.0, "alkalinity": 120.0, "ammonia": 0.05, "nitrite": 0.02, "nitrate": 5.0, "transparency": 35.0, "alerts_triggered": [], "notes": "Medição matinal - condições estáveis", "created_at": "2026-02-19T10:30:00Z"}Geração Automática de Alertas
Seção intitulada “Geração Automática de Alertas”Se algum parâmetro exceder os limites, alertas são criados automaticamente:
{ "alerts_triggered": [ { "type": "LOW_OXYGEN", "message": "Oxigênio dissolvido está abaixo de 4.0 mg/L", "value": 3.2, "threshold": 4.0 } ]}GET /water-quality/pond/{pond_id}
Seção intitulada “GET /water-quality/pond/{pond_id}”Obter histórico de qualidade da água de um viveiro.
Requisição
Seção intitulada “Requisição”GET /api/v1/water-quality/pond/{pond_id}?start_date={date}&end_date={date}Authorization: Bearer <token>Parâmetros de Query
Seção intitulada “Parâmetros de Query”| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
start_date | date | ❌ | Filtrar a partir da data (ISO 8601) |
end_date | date | ❌ | Filtrar até a data (ISO 8601) |
Resposta 200 OK
Seção intitulada “Resposta 200 OK”{ "pond_id": "pond-uuid", "pond_cod": "VV-01", "measurements": [ { "id": "measurement-uuid-1", "measurement_date": "2026-02-19T06:00:00Z", "temperature": 27.5, "dissolved_oxygen": 5.5, "ph": 7.9, "salinity": 18.5, "created_at": "2026-02-19T06:30:00Z" } ], "statistics": { "total_measurements": 42, "date_range": { "start": "2026-01-08T00:00:00Z", "end": "2026-02-19T00:00:00Z" }, "averages": { "temperature": 28.2, "dissolved_oxygen": 5.1, "ph": 7.8, "salinity": 18.3 } }}Exemplos de Uso
Seção intitulada “Exemplos de Uso”async function recordWaterQuality(pondId, data, token) { const response = await fetch('https://api.aeraplus.com/v1/water-quality/', { method: 'POST', headers: { 'Authorization': `Bearer ${token}`, 'Content-Type': 'application/json' }, body: JSON.stringify({ pond_id: pondId, measurement_date: new Date().toISOString(), ...data }) });
const result = await response.json();
// Verificar alertas if (result.alerts_triggered.length > 0) { console.warn('Alertas de qualidade da água:', result.alerts_triggered); }
return result;}GET /water-quality/pond/{pond_id}/latest
Seção intitulada “GET /water-quality/pond/{pond_id}/latest”Obtém a medição de qualidade da água mais recente para um viveiro.
Parâmetros de Path
Seção intitulada “Parâmetros de Path”| Parâmetro | Tipo | Descrição |
|---|---|---|
pond_id | UUID | ID do viveiro |
Requisição
Seção intitulada “Requisição”GET /api/v1/water-quality/pond/{pond_id}/latestAuthorization: Bearer <token>Resposta 200 OK
Seção intitulada “Resposta 200 OK”{ "id": "measurement-uuid", "pond_id": "pond-uuid", "pond_cod": "VV-01", "measurement_date": "2026-02-19T06:00:00Z", "temperature": 28.5, "dissolved_oxygen": 5.2, "ph": 7.8, "salinity": 18.0, "alkalinity": 120.0, "ammonia": 0.05, "nitrite": 0.02, "nitrate": 5.0, "transparency": 35.0, "time_since_measurement": "2 horas atrás", "status": "NORMAL", "alerts": []}GET /water-quality/pond/{pond_id}/alerts
Seção intitulada “GET /water-quality/pond/{pond_id}/alerts”Obtém alertas de qualidade da água para um viveiro específico.
Parâmetros de Path
Seção intitulada “Parâmetros de Path”| Parâmetro | Tipo | Descrição |
|---|---|---|
pond_id | UUID | ID do viveiro |
Parâmetros de Query
Seção intitulada “Parâmetros de Query”| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
start_date | date | ❌ | Filtrar a partir da data |
end_date | date | ❌ | Filtrar até a data |
resolved | boolean | ❌ | Filtrar por status de resolução |
Requisição
Seção intitulada “Requisição”GET /api/v1/water-quality/pond/{pond_id}/alerts?resolved=falseAuthorization: Bearer <token>Resposta 200 OK
Seção intitulada “Resposta 200 OK”{ "pond_id": "pond-uuid", "pond_cod": "VV-01", "alerts": [ { "id": "alert-uuid", "type": "LOW_OXYGEN", "parameter": "dissolved_oxygen", "value": 3.2, "threshold": 4.0, "severity": "HIGH", "message": "Oxigênio dissolvido está abaixo de 4.0 mg/L", "triggered_at": "2026-02-19T05:30:00Z", "resolved": false, "resolved_at": null } ], "summary": { "total_alerts": 1, "unresolved": 1, "high_severity": 1, "medium_severity": 0, "low_severity": 0 }}GET /water-quality/trend/{pond_id}/{parameter}
Seção intitulada “GET /water-quality/trend/{pond_id}/{parameter}”Obtém análise de tendência para um parâmetro específico de qualidade da água.
Parâmetros de Path
Seção intitulada “Parâmetros de Path”| Parâmetro | Tipo | Descrição |
|---|---|---|
pond_id | UUID | ID do viveiro |
parameter | string | Nome do parâmetro (temperature, dissolved_oxygen, ph, etc.) |
Parâmetros de Query
Seção intitulada “Parâmetros de Query”| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
days | integer | ❌ | Número de dias para análise (padrão: 30) |
Requisição
Seção intitulada “Requisição”GET /api/v1/water-quality/trend/{pond_id}/dissolved_oxygen?days=14Authorization: Bearer <token>Resposta 200 OK
Seção intitulada “Resposta 200 OK”{ "pond_id": "pond-uuid", "pond_cod": "VV-01", "parameter": "dissolved_oxygen", "unit": "mg/L", "optimal_range": { "min": 4.0, "max": null }, "trend_data": { "period_days": 14, "data_points": [ { "date": "2026-02-05", "avg": 5.5, "min": 4.8, "max": 6.2 }, { "date": "2026-02-06", "avg": 5.3, "min": 4.6, "max": 6.0 }, { "date": "2026-02-07", "avg": 5.1, "min": 4.2, "max": 5.8 } ], "statistics": { "overall_avg": 5.2, "overall_min": 4.2, "overall_max": 6.2, "std_deviation": 0.45, "trend_direction": "STABLE", "alerts_triggered": 2 } }, "recommendations": [ "Níveis de oxigênio dissolvido estão na faixa ideal.", "Continue com o cronograma de aeração atual." ]}Valores de Direção de Tendência
Seção intitulada “Valores de Direção de Tendência”| Direção | Descrição |
|---|---|
INCREASING | Valores em tendência de alta |
DECREASING | Valores em tendência de baixa |
STABLE | Valores relativamente estáveis |
VOLATILE | Alta variabilidade |