Esta API fornece endpoints para gerenciar lotes, animais, brincos e refeições, bem como gerar relatórios de comportamento ingestivo, desempenho e viabilidade econômica.
Base URL:
https://comedouros.onrender.com/
Endpoint:
/api/lotes/
Métodos:
GET /lotes/→ Lista todos os lotesGET /lotes/{id}/→ Retorna um lote específicoPOST /lotes/→ Cria um novo lotePUT /lotes/{id}/→ Atualiza um loteDELETE /lotes/{id}/→ Remove um lote
Exemplo de corpo (POST):
{
"nome": "Lote 01",
"n_animais": 10
}Exemplo de resposta (GET /lotes/):
[
{
"id": 1,
"nome": "Lote 01",
"n_animais": 10
}
]Endpoint:
/api/brincos/
Métodos:
GET /brincos/GET /brincos/{id}/POST /brincos/PUT /brincos/{id}/DELETE /brincos/{id}/
Exemplo de corpo (POST):
{
"tag_id": "TAG1234",
"numero": "001"
}Endpoint:
/api/animais/
Métodos:
GET /animais/GET /animais/{id}/POST /animais/PUT /animais/{id}/DELETE /animais/{id}/
Filtros disponíveis:
?lote={id}?raca={string}?categoria={string}
Exemplo de corpo (POST):
{
"sexo": "macho",
"meses": 12,
"raca": "Nelore",
"categoria": "Bezerro",
"frequencia_livre": false,
"frequencia": 3,
"brinco": 1,
"lote": 2
}Resposta adicional:
peso_atual: peso vivo mais recente do animal (kg)
Endpoint:
/api/refeicoes/
Métodos:
GET /refeicoes/GET /refeicoes/{id}/POST /refeicoes/PUT /refeicoes/{id}/DELETE /refeicoes/{id}/
Filtros disponíveis:
?animal={id}?data=YYYY-MM-DD
Exemplo (POST):
{
"horario_entrada": "09:00:00",
"horario_saida": "09:20:00",
"consumo_kg": 2.3,
"peso_vivo_entrada_kg": 200.5,
"data": "2025-10-10",
"animal": 1
}Endpoint:
POST /api/cria-animais-com-csv/
Descrição:
Cria animais e suas refeições a partir de um arquivo CSV exportado do sistema do cocho.
Requisição (multipart/form-data):
| Campo | Tipo | Descrição |
|---|---|---|
arquivo |
file | Arquivo CSV contendo dados dos animais e refeições |
Exemplo de resposta:
{
"sucesso": "Animais e refeições registradas com sucesso"
}Endpoints:
GET /api/consumo-diario/animal/{brinco}/
GET /api/consumo-diario/animal/{brinco}/{data}/
GET /api/consumo-diario/lote/{nome}/
GET /api/consumo-diario/lote/{nome}/{data}/
Descrição:
- Retorna o consumo de ração (kg) de um animal ou lote, por dia ou por refeição em um dia específico.
Parâmetros:
| Nome | Tipo | Descrição |
|---|---|---|
animal_ou_lote |
string | 'animal' ou 'lote' |
numero_ou_nome |
string | Número do brinco (animal) ou nome do lote |
data |
string (opcional) | YYYY-MM-DD |
Resposta (animal):
{
"2025-10-10": 3.2,
"2025-10-11": 2.9
}Resposta (com data):
[
{"09:00:00": 1.2},
{"15:00:00": 1.7}
]Endpoints:
GET /api/minuto-por-refeicao/animal/{brinco}/
GET /api/minuto-por-refeicao/animal/{brinco}/{data}/
GET /api/minuto-por-refeicao/lote/{nome}/
Descrição: Calcula o tempo médio (em minutos) das refeições de um animal ou lote.
Resposta (animal, média por dia):
{
"2025-10-10": 18.5,
"2025-10-11": 21.3
}Resposta (animal, dia específico):
{
"refeicao_n1": 17.5,
"refeicao_n2": 19.0
}Todos os endpoints de desempenho seguem o mesmo padrão de rota e aceitam tanto animal quanto lote:
GET /api/<rota>/<animal_ou_lote>/<numero_ou_nome>/
| Parâmetro | Tipo | Descrição |
|---|---|---|
animal_ou_lote |
string | 'animal' ou 'lote' |
numero_ou_nome |
string | Número do brinco (animal) ou nome do lote |
Endpoint:
GET /api/evolucao-peso-por-dia/<animal_ou_lote>/<numero_ou_nome>/
Descrição:
Retorna a evolução do peso vivo (kg) de um animal ou lote ao longo do tempo.
Exemplo (animal):
GET /api/evolucao-peso-por-dia/animal/101/Exemplo (lote):
GET /api/evolucao-peso-por-dia/lote/LoteA/Resposta:
{
"2025-10-10": 200.5,
"2025-10-11": 205.3
}Erros possíveis:
{"erro": "Não existe um animal com um brinco de número 101"}Endpoint:
GET /api/evolucao-consumo-diario/<animal_ou_lote>/<numero_ou_nome>/
Descrição:
Retorna o consumo diário de ração (kg) por animal ou lote.
Exemplo (animal):
GET /api/evolucao-consumo-diario/animal/101/Exemplo (lote):
GET /api/evolucao-consumo-diario/lote/LoteA/Resposta:
{
"2025-10-10": 3.0,
"2025-10-11": 2.8
}Erros possíveis:
{"erro": "não foram encontradas refeições para o animal com o brinco 101"}Endpoint:
GET /api/evolucao-ganho/<animal_ou_lote>/<numero_ou_nome>/
Descrição:
Gera um relatório da evolução do ganho de peso de um animal ou lote.
Exemplo (animal):
GET /api/evolucao-ganho/animal/101/Exemplo (lote):
GET /api/evolucao-ganho/lote/LoteA/Resposta:
{
"2025-10-11": 4.8,
"2025-10-12": 6.1
}Erros possíveis:
{"erro": "não foram encontrados animais para o lote LoteA"}Endpoint:
GET /api/evolucao-gmd/<animal_ou_lote>/<numero_ou_nome>/
Descrição:
Gera um relatório com o ganho médio diário (kg/dia) de um animal ou lote.
Exemplo (animal):
GET /api/evolucao-gmd/animal/101/Exemplo (lote):
GET /api/evolucao-gmd/lote/LoteA/Resposta:
{
"2025-10-10": 0.0,
"2025-10-11": 2.3,
"2025-10-12": 2.6
}Erros possíveis:
{"erro": "argumento invárlido 'gmd'"}Endpoints:
GET /api/custo-total/animal/{brinco}/{preco_kg_racao}/
GET /api/custo-total/lote/{nome}/{preco_kg_racao}/
Descrição: Calcula o custo total de ração consumida.
Parâmetros:
| Nome | Tipo | Descrição |
|---|---|---|
preco_kg_racao |
float | Preço do kg da ração |
Resposta:
{
"custo_total": 324.5
}Endpoints:
GET /api/evolucao-custo-diario/animal/{brinco}/{preco_kg_racao}/
GET /api/evolucao-custo-diario/lote/{nome}/{preco_kg_racao}/
Resposta:
{
"2025-10-10": 15.6,
"2025-10-11": 17.2
}Endpoints:
GET /api/ganho-por-dia/animal/{brinco}/{reais_por_kg_de_peso_vivo}/
GET /api/ganho-por-dia/lote/{nome}/{reais_por_kg_de_peso_vivo}/
Descrição: Calcula o ganho em reais por dia, com base no GMD e no preço do kg do peso vivo.
Parâmetros:
| Nome | Tipo | Descrição |
|---|---|---|
reais_por_kg_de_peso_vivo |
float | Preço (R$/kg) do peso vivo |
Resposta:
{
"2025-10-10": 9.8,
"2025-10-11": 12.1
}Endpoint:
GET /api/relatorio-geral/<animal_ou_lote>/<numero_ou_nome>/<preco_kg_racao>/<reais_por_kg_de_peso_vivo>/
Descrição:
Gera um único relatório completo, reunindo todos os gráficos e métricas já existentes na API, incluindo:
- Consumo diário
- Minutos por refeição
- Evolução do peso
- Evolução do consumo diário
- Evolução do ganho de peso
- Evolução do GMD
- Custo total
- Evolução do custo diário
- Ganho por dia
Funciona para animal e lote.
| Parâmetro | Tipo | Descrição |
|---|---|---|
animal_ou_lote |
string | 'animal' ou 'lote' |
numero_ou_nome |
string | Número do brinco (animal) ou nome do lote |
preco_kg_racao |
float (string) | Preço por kg da ração (formato x.y) |
reais_por_kg_de_peso_vivo |
float (string) | Preço do kg do peso vivo (formato x.y) |
GET /api/relatorio-geral/animal/101/2.5/14.3/GET /api/relatorio-geral/lote/LoteA/2.5/14.3/GET /api/relatorio-geral/lote/TODOS/2.5/14.3/{
"consumo_diario": {
"2025-10-10": 3.1,
"2025-10-11": 2.9
},
"minuto_por_refeicao": {
"2025-10-10": 19.4,
"2025-10-11": 20.1
},
"evolucao_peso_por_dia": {
"2025-10-10": 200.5,
"2025-10-11": 205.3
},
"evolucao_consumo_diario": {
"2025-10-10": 3.0,
"2025-10-11": 2.8
},
"evolucao_ganho": {
"2025-10-11": 4.8,
"2025-10-12": 6.1
},
"evolucao_gmd": {
"2025-10-10": 0.0,
"2025-10-11": 2.3
},
"custo_total": 324.5,
"evolucao_custo_diario": {
"2025-10-10": 15.6,
"2025-10-11": 17.2
},
"ganho_por_dia": {
"2025-10-10": 9.8,
"2025-10-11": 12.1
}
}✅ Observações gerais
- Todas as respostas de erro seguem o formato:
{"erro": "mensagem descritiva"}- Datas devem estar no formato ISO:
YYYY-MM-DD - Valores monetários e numéricos devem usar ponto (
.) como separador decimal.