Pular para o conteúdo principal

🔌 API REST - DataPulseCM

A API REST do DataPulseCM fornece endpoints completos para gerenciamento e consulta de execuções de jobs ETL.

📡 Base URL​

http://localhost:5105/api
https://localhost:7268/api

🔐 Autenticação​

Atualmente, a API não requer autenticação. Planejado para versões futuras: JWT Authentication.

📚 Documentação Interativa​

Acesse a documentação interativa Swagger:

https://localhost:7268/swagger

📊 Endpoints Disponíveis​

Jobs Management​

MétodoEndpointDescrição
GET/api/jobsLista execuções recentes
GET/api/jobs/{id}Busca execução por ID
GET/api/jobs/filterFiltra execuções
POST/api/jobs/startInicia nova execução
POST/api/jobs/{id}/finishFinaliza execução

Statistics & Analytics​

MétodoEndpointDescrição
GET/api/jobs/statisticsEstatísticas gerais
GET/api/jobs/failedLista execuções com falha
GET/api/jobs/by-name/{jobName}Última execução do job
GET/api/jobs/by-name/{jobName}/historyHistórico do job
GET/api/jobs/by-name/{jobName}/success-rateTaxa de sucesso

Execution Details​

MétodoEndpointDescrição
GET/api/jobs/{id}/detailsSteps da execução
POST/api/jobs/{id}/details/startInicia step
POST/api/jobs/details/{detailId}/finishFinaliza step

Health​

MétodoEndpointDescrição
GET/healthStatus da API e database

📦 Formatos de Resposta​

Todas as respostas são em JSON.

Sucesso​

{
"data": [...],
"count": 10
}

Erro​

{
"message": "Descrição do erro",
"status": 400
}

🎯 Códigos de Status HTTP​

CódigoSignificado
200Sucesso
201Criado
400Requisição inválida
404Não encontrado
500Erro interno do servidor

📝 Modelos de Dados​

JobExecution​

{
"executionID": 123,
"jobName": "ETL_ImportarVendas",
"status": "Sucesso",
"startDate": "2026-02-09T10:30:00",
"endDate": "2026-02-09T10:35:00",
"duration": 300,
"recordsProcessed": 15000,
"errorMessage": null
}

Statistics​

{
"total": 1500,
"successful": 1380,
"failed": 120,
"successRate": 92.0,
"byStatus": {
"Sucesso": 1380,
"Falha": 120
}
}

JobExecutionDetail​

{
"detailId": 456,
"executionId": 123,
"stepName": "Extrair dados da API",
"stepOrder": 1,
"status": "Sucesso",
"startTime": "2026-02-09T10:30:00",
"endTime": "2026-02-09T10:31:00",
"recordsProcessed": 5000,
"errorMessage": null
}

🔄 Fluxo Típico de Uso​

🛡️ Rate Limiting​

Atualmente não há limite de requisições. Planejado para versões futuras.

📊 Paginação​

Os endpoints de listagem suportam o parâmetro limit:

GET /api/jobs?limit=100

Valores aceitos: 1-1000 (padrão: 50)

🔍 Filtros​

Endpoint /api/jobs/filter suporta:

GET /api/jobs/filter?jobName=ETL_Vendas&status=Sucesso&startDate=2026-02-01&endDate=2026-02-09

Parâmetros:

  • jobName - Nome do job (string)
  • status - Status da execução (string)
  • startDate - Data inicial (ISO 8601)
  • endDate - Data final (ISO 8601)

📖 Próximos Tópicos​

Continue explorando a documentação para ver como integrar seus jobs ETL com a API.