Ir para o conteúdo
LF Serviços de DadosLF Serviços de Dados
Demonstração com dados sintéticos

Frente 02

Desenvolvimento sob medida

O que a planilha não consegue fazer

  • Software sob medida
  • API REST
  • Trilha de auditoria
  • SLA

O problema

O time de dados recebe pedido por WhatsApp, e-mail, corredor e reunião. Ninguém sabe quantas demandas existem, qual a fila, nem quanto tempo leva.

A tentativa de organizar nasce como planilha compartilhada, e aí vem o problema pior: quinze pessoas editando o mesmo arquivo, sem validação, sem histórico de quem alterou o quê, campo livre onde deveria haver opção fechada.

GET/api/demandas

Lista demandas com filtros e paginação.

Devolve as demandas que atendem aos filtros, paginadas. Sem filtro, devolve a fila inteira.

Parâmetros de consulta

  • statusstring— rascunho | triagem | fila | execucao | validacao | concluida | recusada
  • tipostring— relatorio | painel | automacao | integracao | correcao
  • prioridadestring— baixa | media | alta | critica
  • areastring— área solicitante
  • pagina / tamanhonúmero— paginação; tamanho máximo 100

Códigos de erro

  • 400 — parâmetro de paginação inválido
curl "/api/demandas?status=fila&tamanho=3"
GET/api/demandas/{codigo}

Uma demanda, com trilha e transições possíveis.

Além dos campos da demanda, devolve o histórico completo e quais transições o papel informado consegue executar a partir do status atual.

Parâmetros de consulta

  • papelstring— solicitante | analista | gestor

Códigos de erro

  • 404 — o código não existe
curl "/api/demandas/DEM-2026-0011?papel=gestor"
POST/api/demandas

Cria uma demanda.

Aplica as mesmas regras do formulário. Título entre 10 e 120 caracteres, descrição com no mínimo 30, e prioridade crítica exige impacto e justificativa com no mínimo 80.

Corpo da requisição

{
  "titulo": "string (10-120)",
  "descricao": "string (mín. 30)",
  "tipo": "relatorio | painel | automacao | integracao | correcao",
  "prioridade": "baixa | media | alta | critica",
  "solicitanteId": "U6 | U7 | U8",
  "impactoEstimado": "string (obrigatório se crítica)",
  "justificativa": "string (mín. 80 se crítica)"
}

Códigos de erro

  • 400 — JSON inválido ou solicitanteId inexistente
  • 422 — algum campo viola as regras de criação
curl -X POST "/api/demandas" \
  -H "content-type: application/json" \
  -d '{"titulo":"curto","descricao":"muito curta","tipo":"relatorio","prioridade":"critica","solicitanteId":"U6"}'
PATCH/api/demandas/{codigo}/status

Move a demanda de status.

A máquina de estados e as permissões por papel são avaliadas aqui, no servidor. Uma transição que não existe responde 422; uma que existe mas não pertence ao papel responde 403.

Corpo da requisição

{
  "para": "triagem | fila | execucao | validacao | concluida | recusada",
  "usuarioId": "U1 … U8",
  "motivoRecusa": "string (mín. 40, obrigatório ao recusar)"
}

Códigos de erro

  • 400 — JSON inválido ou usuarioId inexistente
  • 403 — a transição existe, mas não para este papel
  • 404 — o código não existe
  • 422 — a transição não existe na máquina de estados
curl -X PATCH "/api/demandas/DEM-2026-0011/status" \
  -H "content-type: application/json" \
  -d '{"para":"concluida","usuarioId":"U1"}'
GET/api/indicadores

Indicadores da operação.

Série mensal, tempo médio por tipo, aderência ao SLA por prioridade e por tipo, distribuição por área e tempo médio parado em cada status.

curl "/api/indicadores"
Desenvolvimento sob medida | LF Serviços de Dados