https://github.com/pauloruszel/api-proc-arquivo
Api para para processar arquivos em no formato (XLSX) e salvar os status de processamento em um banco PostgresSQL
https://github.com/pauloruszel/api-proc-arquivo
apache-poi java21 lombok postgresql spring-boot3
Last synced: about 1 month ago
JSON representation
Api para para processar arquivos em no formato (XLSX) e salvar os status de processamento em um banco PostgresSQL
- Host: GitHub
- URL: https://github.com/pauloruszel/api-proc-arquivo
- Owner: pauloruszel
- Created: 2024-02-23T23:27:00.000Z (over 2 years ago)
- Default Branch: master
- Last Pushed: 2024-04-18T18:13:12.000Z (about 2 years ago)
- Last Synced: 2025-02-17T07:35:34.331Z (over 1 year ago)
- Topics: apache-poi, java21, lombok, postgresql, spring-boot3
- Language: Java
- Homepage:
- Size: 143 KB
- Stars: 1
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
## 🎯 API de Processamento de arquivos para Cotações e Planos de Carro
**Esta API foi desenvolvida para facilitar o processamento eficiente de arquivos Excel (.xlsx) que contêm dados sobre cotações e planos de automóveis.**
* Upload de Arquivos: Permite aos usuários carregar arquivos Excel diretamente na plataforma.
* Processamento de Dados: Após o upload, a API processa automaticamente os dados contidos no arquivo. Isso inclui a validação das células e tipos do dados para as cotações de seguros, modelos de carros, segmentos e dados específicos dos veículos.
* Armazenamento de Informações: Todos os dados processados são armazenados em um banco PostgresSQL. Isso inclui informações sobre modelos, segmentos, e detalhes específicos de cada veículo.
* Gerenciamento de Erros: A API permite salvar os erros em uma tabela especifica para cada linha, caso haja ou falhas durante o processamento dos arquivos. Isso garante que qualquer problema seja identificado e tratado.
## ✔️ Tecnologias e bibliotecas usadas
- `Java 21`
- `Spring Boot 3.2.4`
- `REST API`
- `PostgreSQL`
- `H2`
- `Flyway`
- `Lombok`
- `Apache POI`
## ⚙️ Configuração
Antes de executar em ambientes que utilizam PostgreSQL defina as variáveis de ambiente abaixo (nenhuma credencial padrão fica embarcada no `application.properties`):
| Variável | Descrição |
| --- | --- |
| `SPRING_DATASOURCE_URL` | URL JDBC para o banco PostgreSQL. |
| `SPRING_DATASOURCE_USERNAME` | Usuário do banco. |
| `SPRING_DATASOURCE_PASSWORD` | Senha do banco. |
| `PROCESSAMENTO_LIMITE_REGISTROS` | (Opcional) Limite máximo de linhas processadas por arquivo. Valor padrão: `500` em produção e `150` no perfil `dev`. |
O limite efetivamente utilizado é registrado em cada linha da tabela `processamento`, facilitando auditorias futuras.
## 🔄 Fluxo de processamento e monitoramento
* O upload passa a ser assíncrono: o endpoint responde rapidamente com HTTP `202 Accepted`, liberando o cliente para outras operações enquanto o processamento ocorre em background.
* Após o envio, utilize os novos endpoints para acompanhar o andamento:
* `GET /api/v1/processamentos/{id}` — retorna status, totais processados e o limite aplicado ao processamento.
* `GET /api/v1/processamentos/{id}/erros` — lista as falhas de validação encontradas por linha.
As mensagens de erro seguem um padrão com códigos estáveis, facilitando automações e internacionalização.
## 🚀 Como usar
## Clone o repositório:
```bash
git clone https://github.com/pauloruszel/api-proc-arquivo.git
```
## 📁 Entre na pasta do projeto:
```bash
cd api-proc-arquivo
```
## 🛠️ Build:
```bash
cd api-proc-arquivo
mvn clean install
```
## 🐳 Execute o docker-compose:
```bash
docker-compose up --build
```
## ✨ URL's importantes:
PostgresSQL:
URL: `jdbc:postgresql://postgres:5432/processamentoarquivo`