Árvore de páginas

CA API do Rating funciona de maneira assíncrona.

Isso se dá pelo fato de a carga de dados a ser suportada ser grande, por esse motivo o processamento síncrono pode causar lentidão em interfaces e risco de perdas de dados nessa espera.

Envio por lotes

Como a carga de dados pode atingir valores altos, o envio para os endpoints são limitados por valores que definem um lote.

A quantidade máxima que cada endpoint pode recepcionar é um parâmetro por endpoint, a ser definido em tempo de implantação no arquivo de configuração de API. (para mais detalhes, vide RT - Rating - Parâmetros Técnicos (sistema))
Caso a quantidade de registros passado nos endpoints ultrapasse o parâmetrizado, o endpoint retornará um erro.

Definição de quantidade por Lote

Cada item de cada endpoint pode variar o tamanho.
Abaixo temos uma referência do tamanho representado e um valor recomendado por endpoint

  • Operação
    • 1 registro ≈ 7,12KB (sem compressão)
    • Valor recomendado: 14.000 (equivalendo cerca de 100MB por requisição)
  • Cálculo Provisão
    • 1 registro ≈ 550B (sem compressão)
    • Valor recomendado: 180.000 (equivalendo cerca de 100MB por requisição)
  • Motivo Perda
    • 1 registro ≈ 136B (sem compressão)
    • Valor recomendado: 735.000 (equivalendo a 100MB por requisição)
  • Motivo Alocação
    • 1 registro ≈ 175B (sem compressão)
    • Valor recomendado: 570.000 (equivalendo a 100MB por requisição)


Fluxo de processamento

O fluxo de processamento é descrito na imagem abaixo

Os endpoints da etapa 3/5 (Consulta Status Lote) e 7 (Consulta Erros Lote) estão descritos abaixo



Endpoints processamento

Endpoints para acompanhamento de processamento assíncrono


Consulta Status Lote

Endpoint: /processamento/{cd_emp}/{dt_mov}/{id_request}
MétodoGET
Content Type
Não possui (sem corpo de requisição)
Corpo: Não possui

Retornos

200 - OK: Retornando status de processamento
Content Type: application/json
Corpo

{
  "dsStatus": "string", // AGUARDANDO, PROCESSANDO, FINALIZADO, ERRO
  "qtLote": "number", // Quantidade de itens totais
  "qtProc": "number", // Quantidade de itens processados
  "qtErro": "number" // Quantidade de itens erros 
}


404 - Não achado: Não achado processamento para os parâmetros
Content Type: application/json
Corpo

{
  "status": 0,
  "error": "string",
  "message": "string"
}


500 - Erro Interno
Content Type: application/json
Corpo

{
  "status": 0,
  "error": "string",
  "message": "string"
}

Consulta Erros Lote

Endpoint: /processamento/{cd_emp}/{dt_mov}/{id_request}/erro
QueryString: 
 - ?page
=0 (paginação, default 0)
 - ?size= 50 (tamanho página, default 50)
MétodoGET
Content Type
Não possui (sem corpo de requisição)
Corpo: Não possui

Retornos

200 - OK: Retornando erros de processamento
Content Type:
application/json
Corpo

[{
  "dsErro": "string",
  "dsObj": {
    // Campos que identificam objeto e variam com o fluxo
    // (mais detalhes abaixo)
  }
},
.... //Demais elementos
]
dsObj - Valores dinâmicos

Chaves Gerais: Dt. Mov, Cd. Emp


Comandada

  • Comandada O: Ipoc
  • Comandada C: Cnpj
  • Comandada G: Sigla grupo Econ.

Motivo Perda: Interface, Valor perda, motivo, Ipoc

Motivo Alocação: Interface, Data base, motivo, Ipoc


40X - Erro: Requisição
Content Type: application/json
Corpo

{
  "status": 0,
  "error": "string",
  "message": "string"
}

500 - Erro Interno
Content Type: application/json
Corpo

{
  "status": 0,
  "error": "string",
  "message": "string"
}



  • Sem rótulos