Skip to main content

📖 Descrição

Dispara o processamento assíncrono da contagem de cruzamentos de preço (spot x future) para um dia. O endpoint retorna imediatamente com 202 Accepted. Em background, o serviço consulta todas as operações spot x future do dia, agrupa por ticker e exchange, calcula a quantidade de cruzamentos por grupo e persiste os resultados na base de dados.

🛠️ Requisição

Método

POST

URL

/v1/arbitrage/future/crossing-counts

Body (opcional)

CampoTipoObrigatórioDescrição
datestringNãoData no formato YYYY-MM-DD. Se omitido, usa o dia atual (America/Sao_Paulo)

Exemplo de Requisição

Processar o dia atual (body vazio):
curl -X POST 'localhost:8080/v1/arbitrage/future/crossing-counts' \
  -H 'Content-Type: application/json' \
  -d '{}'
Processar uma data específica:
curl -X POST 'localhost:8080/v1/arbitrage/future/crossing-counts' \
  -H 'Content-Type: application/json' \
  -d '{"date": "2026-02-25"}'

📤 Resposta

Status

202 Accepted A resposta é enviada assim que o processamento é aceito. O trabalho pesado (consulta, agrupamento, contagem e gravação) ocorre em background.

Exemplo de Resposta

{
    "processingDate": "2026-02-25",
    "status": "accepted"
}

Campos da Resposta

CampoTipoDescrição
processingDatestringData que será (ou foi) processada (YYYY-MM-DD)
statusstringSempre "accepted" quando a requisição é válida

📝 Notas

Comportamento:
  • O processamento roda em uma goroutine; não bloqueia a resposta HTTP.
  • Para a data informada (ou dia atual), o serviço busca todas as operações na coleção de operações spot x future, agrupa por (ticker, exchange) e, para cada grupo, conta os cruzamentos (mudança de sinal de spotPrice - futurePrice entre pontos consecutivos ordenados por tempo).
  • Os resultados são gravados na coleção spot_future_crossing_counts, com documentos contendo: processing_date, ticker, exchange, crossing_count.
  • Erros durante o processamento em background são reportados à telemetria; o cliente não recebe retry ou status do job.
Erros comuns:
  • 500: erro ao parsear o body (raro; body é opcional). Falhas no processamento assíncrono não alteram o status HTTP (já foi 202).