Início Rápido
Este guia mostra como começar a usar a API AeraPlus em poucos minutos.
Pré-requisitos
Seção intitulada “Pré-requisitos”- Acesso à API (desenvolvimento ou produção)
- Cliente HTTP (cURL, Postman, Insomnia, etc.)
- Conhecimento básico de REST APIs
- Registre uma conta
- Faça login para obter o token
- Crie sua primeira fazenda
- Adicione um viveiro
- Registre um aerador
- Controle o aerador
1. Registrar uma Conta
Seção intitulada “1. Registrar uma Conta”curl -X POST "http://localhost:8000/api/v1/auth/register" \ -H "Content-Type: application/json" \ -d '{ "email": "usuario@exemplo.com", "name": "João Silva", "password": "senha_segura_123", "role": "OWNER" }'const response = await fetch('http://localhost:8000/api/v1/auth/register', { method: 'POST', headers: { 'Content-Type': 'application/json', }, body: JSON.stringify({ email: 'usuario@exemplo.com', name: 'João Silva', password: 'senha_segura_123', role: 'OWNER', }),});
const user = await response.json();console.log('Usuário criado:', user.id);import requests
response = requests.post( "http://localhost:8000/api/v1/auth/register", json={ "email": "usuario@exemplo.com", "name": "João Silva", "password": "senha_segura_123", "role": "OWNER" })
user = response.json()print(f"Usuário criado: {user['id']}")2. Fazer Login
Seção intitulada “2. Fazer Login”curl -X POST "http://localhost:8000/api/v1/auth/login" \ -H "Content-Type: application/json" \ -d '{ "email": "usuario@exemplo.com", "password": "senha_segura_123" }'const response = await fetch('http://localhost:8000/api/v1/auth/login', { method: 'POST', headers: { 'Content-Type': 'application/json', }, body: JSON.stringify({ email: 'usuario@exemplo.com', password: 'senha_segura_123', }),});
const { access_token } = await response.json();console.log('Token:', access_token);response = requests.post( "http://localhost:8000/api/v1/auth/login", json={ "email": "usuario@exemplo.com", "password": "senha_segura_123" })
token = response.json()["access_token"]print(f"Token: {token}")3. Criar uma Fazenda
Seção intitulada “3. Criar uma Fazenda”curl -X POST "http://localhost:8000/api/v1/farms/" \ -H "Authorization: Bearer SEU_TOKEN_AQUI" \ -H "Content-Type: application/json" \ -d '{ "name": "Fazenda Alpha", "description": "Minha primeira fazenda", "lat": "-23.550520", "lng": "-46.633308" }'const response = await fetch('http://localhost:8000/api/v1/farms/', { method: 'POST', headers: { 'Authorization': `Bearer ${access_token}`, 'Content-Type': 'application/json', }, body: JSON.stringify({ name: 'Fazenda Alpha', description: 'Minha primeira fazenda', lat: '-23.550520', lng: '-46.633308', }),});
const farm = await response.json();console.log('Fazenda criada:', farm.id);headers = {"Authorization": f"Bearer {token}"}
response = requests.post( "http://localhost:8000/api/v1/farms/", headers=headers, json={ "name": "Fazenda Alpha", "description": "Minha primeira fazenda", "lat": "-23.550520", "lng": "-46.633308" })
farm = response.json()farm_id = farm["id"]print(f"Fazenda criada: {farm_id}")4. Adicionar um Viveiro
Seção intitulada “4. Adicionar um Viveiro”curl -X POST "http://localhost:8000/api/v1/ponds/" \ -H "Authorization: Bearer SEU_TOKEN_AQUI" \ -H "Content-Type: application/json" \ -d '{ "farm_id": "ID_DA_FAZENDA", "cod": "POND-001", "pond_type": "fattening", "size_m2": 5000, "depth_m": 2 }'const response = await fetch('http://localhost:8000/api/v1/ponds/', { method: 'POST', headers: { 'Authorization': `Bearer ${access_token}`, 'Content-Type': 'application/json', }, body: JSON.stringify({ farm_id: farm.id, cod: 'POND-001', pond_type: 'fattening', size_m2: 5000, depth_m: 2, }),});
const pond = await response.json();console.log('Viveiro criado:', pond.id);response = requests.post( "http://localhost:8000/api/v1/ponds/", headers=headers, json={ "farm_id": farm_id, "cod": "POND-001", "pond_type": "fattening", "size_m2": 5000, "depth_m": 2 })
pond = response.json()pond_id = pond["id"]print(f"Viveiro criado: {pond_id}")5. Registrar um Aerador
Seção intitulada “5. Registrar um Aerador”curl -X POST "http://localhost:8000/api/v1/aerators/" \ -H "Authorization: Bearer SEU_TOKEN_AQUI" \ -H "Content-Type: application/json" \ -d '{ "pond_id": "ID_DO_VIVEIRO", "name": "Aerador A1", "device_id": "AER-001", "power_watts": 1500, "status": "off" }'const response = await fetch('http://localhost:8000/api/v1/aerators/', { method: 'POST', headers: { 'Authorization': `Bearer ${access_token}`, 'Content-Type': 'application/json', }, body: JSON.stringify({ pond_id: pond.id, name: 'Aerador A1', device_id: 'AER-001', power_watts: 1500, status: 'off', }),});
const aerator = await response.json();console.log('Aerador criado:', aerator.id);response = requests.post( "http://localhost:8000/api/v1/aerators/", headers=headers, json={ "pond_id": pond_id, "name": "Aerador A1", "device_id": "AER-001", "power_watts": 1500, "status": "off" })
aerator = response.json()aerator_id = aerator["id"]print(f"Aerador criado: {aerator_id}")6. Controlar o Aerador
Seção intitulada “6. Controlar o Aerador”# Ligar o aeradorcurl -X POST "http://localhost:8000/api/v1/aerators/ID_DO_AERADOR/control" \ -H "Authorization: Bearer SEU_TOKEN_AQUI" \ -H "Content-Type: application/json" \ -d '{"status": "on"}'// Ligar o aeradorconst response = await fetch( `http://localhost:8000/api/v1/aerators/${aerator.id}/control`, { method: 'POST', headers: { 'Authorization': `Bearer ${access_token}`, 'Content-Type': 'application/json', }, body: JSON.stringify({ status: 'on' }), });
const result = await response.json();console.log('Aerador ligado:', result.status);# Ligar o aeradorresponse = requests.post( f"http://localhost:8000/api/v1/aerators/{aerator_id}/control", headers=headers, json={"status": "on"})
result = response.json()print(f"Aerador ligado: {result['status']}")Próximos Passos
Seção intitulada “Próximos Passos”Agora que você conhece o básico, explore:
- Pontos de Controle - Gerencie múltiplos viveiros
- Agendamentos - Automatize ações
- Alertas - Configure notificações
- Boas Práticas - Dicas de segurança e performance