🏁 Rally API Integration
Integração de APIs de provas de rally
📖 README 📚 Documentação Completa
🔐 API Key Ativa
✓ Autenticado com sucesso
1 Selecionar Prova
Rally: -
2 Selecionar Itinerário
3 Selecionar Especial
4 GPS Token (Opcional)
ℹ️ Apenas necessário se a API GPS exigir autenticação via token
⚙️ Configuração Atual
Prova:
-
Rally ID:
-
Sub Rally ID:
-
Itinerário ID:
-
Especial ID:
-
🔗 Endpoints Rápidos (Configuração Atual)
📊 Dados em Tempo Real
GET /api/chronos2/selected.json
Chronos com GPS e tempos de secções (dorsal, GPS, section_scorings, section_controls)
Filtros: ?ident=DORSAL ou ?participant_id=ID
GET /api/gps/selected.json
Dados GPS originais (tracking API com latitude, longitude, speed, bearing, state)
GET /api/participants/selected.jsonCACHED+GPS
Participantes enriquecidos com dados GPS e estado
GET /api/classification/selected.json
Classificação da especial selecionada
GET /api/sections/selected.json
Tempos de secções do especial selecionado (section_scorings) - TEMPO REAL
🔴 Gravação de Prova
Pronto para gravar
⏰ Auto-start:
-
Primeira especial:
-
Início previsto:
-
Tempo restante:
-
Tempo decorrido:
00:00:00
Minuto atual:
0
Especiais ativas:
0
▶️ Replay de Prova
-
00:00 / 00:00
📍 Pontos de Interesse [ Mostrar ]
📚 Documentação Completa da API [ Mostrar Todas ]
GET /api/discover/rallies
Descobre todos os rallies disponíveis via scraping do site anubesport.com. Retorna lista com rallyId e nome oficial de cada prova.
GET /api/discover/rally/:rallyId
Retorna detalhes completos de um rally específico (nome, subId, trackingUrl, país, idioma, timezone).
GET /api/config
Retorna a configuração atual do servidor (rallyId, subId, itineraryId, pecId, rallyName).
POST /api/config
Atualiza a configuração do rally. Aceita: rallyId, subId, itineraryId, pecId, rallyName. Quando rallyId muda, atualiza automaticamente o cache de dados estáticos (race, itineraries, participants, specials).
POST /api/config/pec
Atualiza apenas o Especial ID (pecId). Body: { "pecId": "123" }. Útil para trocar de especial sem reenviar toda a configuração.
GET /api/race/selected.json CACHED
Informações da prova configurada. Cache atualizado apenas quando rally muda. Dados: nome, país, idioma, timezone, etc.
GET /api/race/:rallyId.json
Busca informações de qualquer rally pelo ID, sem usar configuração.
GET /api/itineraries/selected.json CACHED
Lista de itinerários da prova configurada. Cache atualizado apenas quando rally muda.
GET /api/itineraries/:rallyId.json
Busca itinerários de qualquer rally pelo ID.
GET /api/specials/selected.json CACHED
Lista de especiais do itinerário configurado. Cache atualizado quando rally ou itinerário muda.
GET /api/specials/:rallyId.json?itinerary_id=X
Busca especiais de qualquer rally e itinerário.
GET /api/participants/selected.json CACHED+GPS
Participantes enriquecidos! Usa cache para dados básicos e busca GPS em tempo real. Cada participante inclui: todos os campos originais + latitude, longitude, state, speed, bearing, color, in_race. Se GPS falhar, retorna dados básicos do cache.
GET /api/participants/:rallyId.json
⭐ API Enriquecida! Busca participantes de qualquer rally com GPS em tempo real:
• Todos os dados originais de participants (ident, competitor, pilot, copilot, vehicle, etc.)
• GPS ao vivo (latitude, longitude, speed, bearing, state, color, unixtime_gps)
• Cache de 12h para dados de participants + GPS fresco a cada pedido
• Retorna mesma estrutura que a API original com campos GPS adicionais
Exemplo:
• Todos os dados originais de participants (ident, competitor, pilot, copilot, vehicle, etc.)
• GPS ao vivo (latitude, longitude, speed, bearing, state, color, unixtime_gps)
• Cache de 12h para dados de participants + GPS fresco a cada pedido
• Retorna mesma estrutura que a API original com campos GPS adicionais
Exemplo:
/api/participants/15920.json
GET /api/penalizations/:rallyId.json
Busca penalizações de um rally específico.
GET /api/classification/selected.json
Classificação da especial configurada. Dados sempre frescos (não usa cache).
GET /api/classification/:rallyId.json?itinerary_id=X&special_id=Y
Busca classificação de qualquer especial.
GET /api/chronos2/selected.json
Dados agregados! Combina chronos + participantes (do cache) + GPS em tempo real + tempos de secções. Cada entrada inclui:
• Todos os campos de chronos originais (participant_id, stage_time, etc.)
• Dados do participante: dorsal, ident, competitor, pilot, copilot, pilot_nat, copilot_nat, vehicle
• GPS em tempo real: latitude, longitude, state, speed, bearing, color, unixtime_gps
• Dados da especial: special_name, special_name_extra, special_meters, in_race
• Tempos de secções: section_scorings, section_scorings_raw
⚡ Filtros disponíveis:
•
•
Exemplos:
•
•
•
Perfeito para tracking ao vivo com filtro por participante!
• Todos os campos de chronos originais (participant_id, stage_time, etc.)
• Dados do participante: dorsal, ident, competitor, pilot, copilot, pilot_nat, copilot_nat, vehicle
• GPS em tempo real: latitude, longitude, state, speed, bearing, color, unixtime_gps
• Dados da especial: special_name, special_name_extra, special_meters, in_race
• Tempos de secções: section_scorings, section_scorings_raw
⚡ Filtros disponíveis:
•
?ident=DORSAL - Filtra por dorsal/ident do participante (ex: ?ident=1)•
?participant_id=ID - Filtra por ID interno do participante (ex: ?participant_id=12345)Exemplos:
•
/api/chronos2/selected.json - Todos os participantes•
/api/chronos2/selected.json?ident=7 - Apenas dorsal 7•
/api/chronos2/selected.json?participant_id=54321 - Apenas participant_id 54321Perfeito para tracking ao vivo com filtro por participante!
GET /api/chronos2/:rallyId.json?special_id=X
⭐ API Enriquecida! Busca chronos de qualquer rally + especial com dados completos:
• Todos os campos de chronos originais
• Dados do participante (ident, competitor, pilot, copilot, vehicle, etc.)
• GPS em tempo real (latitude, longitude, speed, bearing, state, color)
• Tempos de secções (section_scorings, section_scorings_raw)
• Dados da especial (meters, special_name, etc.)
• Cache de 12h para dados estáticos + dados dinâmicos frescos
• Suporta filtros:
• Retorna mesma estrutura que
Exemplo:
• Todos os campos de chronos originais
• Dados do participante (ident, competitor, pilot, copilot, vehicle, etc.)
• GPS em tempo real (latitude, longitude, speed, bearing, state, color)
• Tempos de secções (section_scorings, section_scorings_raw)
• Dados da especial (meters, special_name, etc.)
• Cache de 12h para dados estáticos + dados dinâmicos frescos
• Suporta filtros:
?ident=7 ou ?participant_id=123• Retorna mesma estrutura que
/api/chronos2/selected.jsonExemplo:
/api/chronos2/15920.json?special_id=108083&ident=61
ℹ️ Sobre o Cache
Cache Multi-Rally (12 horas):
• Cache inteligente que armazena dados de múltiplos rallies simultaneamente
• TTL de 12 horas - dados estáticos são mantidos em memória
• Primeira chamada a um rally cria o cache automaticamente
• Chamadas subsequentes ao mesmo rally usam cache (mais rápido)
• Inclui: race, itineraries, participants, specials
APIs Default Enriquecidas:
•
•
• Usam cache de 12h para dados estáticos + dados dinâmicos em tempo real
• Mesma estrutura e funcionalidades que os endpoints /selected
• Suportam filtros (ex:
Dados em Tempo Real (sempre frescos):
• GPS/tracking data
• Chronos times
• Classification
• Sections scorings
• Penalizations
Vantagens:
• Reduz drasticamente chamadas à API Anube
• Respostas mais rápidas (cache em RAM)
• Suporta múltiplos rallies simultaneamente
• Dados sempre atualizados (GPS, times, etc.)
• Funciona automaticamente em todas as APIs /:rallyId
• Cache inteligente que armazena dados de múltiplos rallies simultaneamente
• TTL de 12 horas - dados estáticos são mantidos em memória
• Primeira chamada a um rally cria o cache automaticamente
• Chamadas subsequentes ao mesmo rally usam cache (mais rápido)
• Inclui: race, itineraries, participants, specials
APIs Default Enriquecidas:
•
/api/chronos2/:rallyId.json?special_id=X - Chronos com GPS, sections, participant data•
/api/participants/:rallyId.json - Participants com GPS em tempo real• Usam cache de 12h para dados estáticos + dados dinâmicos em tempo real
• Mesma estrutura e funcionalidades que os endpoints /selected
• Suportam filtros (ex:
?ident=7 ou ?participant_id=123)Dados em Tempo Real (sempre frescos):
• GPS/tracking data
• Chronos times
• Classification
• Sections scorings
• Penalizations
Vantagens:
• Reduz drasticamente chamadas à API Anube
• Respostas mais rápidas (cache em RAM)
• Suporta múltiplos rallies simultaneamente
• Dados sempre atualizados (GPS, times, etc.)
• Funciona automaticamente em todas as APIs /:rallyId