Skip to content

Repository files navigation

📊 User Data Processor

Sistema de processamento e gerenciamento de dados de usuários com suporte a múltiplos formatos (CSV, JSON, XML).

🚀 Como Executar

Com Docker (Recomendado)

docker-compose up --build

Acesse: http://localhost:8080

🧪 Testando a API

Upload de arquivos

# CSV
curl -X POST http://localhost:8080/api/users/upload \
  -F "file=@examples/users.csv" \
  -F "fileType=CSV"

# JSON
curl -X POST http://localhost:8080/api/users/upload \
  -F "file=@examples/users.json" \
  -F "fileType=JSON"

# XML
curl -X POST http://localhost:8080/api/users/upload \
  -F "file=@examples/users.xml" \
  -F "fileType=XML"

Consultar dados

# JSON (padrão)
curl http://localhost:8080/api/users

# CSV
curl http://localhost:8080/api/users?format=csv

# XML
curl http://localhost:8080/api/users?format=xml

Buscar por ID

curl http://localhost:8080/api/users/1

Buscar por origem

curl http://localhost:8080/api/users/source/CSV

Deletar usuário

curl -X DELETE http://localhost:8080/api/users/1

📋 Endpoints

Método Endpoint Descrição
POST /api/users/upload Upload de arquivo (CSV/JSON/XML)
GET /api/users Listar todos (suporta ?format=json/csv/xml)
GET /api/users/{id} Buscar por ID
GET /api/users/source/{source} Buscar por origem (CSV/JSON/XML)
DELETE /api/users/{id} Deletar usuário
GET /actuator/health Health check

📄 Formatos de Arquivo

CSV

name,email
John Doe,john.doe@example.com

JSON

[
  {
    "name": "John Doe",
    "email": "john.doe@example.com"
  }
]

XML

<users>
  <user>
    <n>John Doe</n>
    <email>john.doe@example.com</email>
  </user>
</users>

🛠️ Tecnologias

  • Java 21
  • Spring Boot 3.5.7
  • MySQL 8.0
  • Docker
  • Maven

📚 Documentação

Swagger: docs/swagger.yaml

Visualizar: https://editor.swagger.io/

🗄️ Banco de Dados

# Acessar MySQL (Docker)
docker exec -it userdb-mysql mysql -u root -proot userdb

# Consultar dados
SELECT * FROM users;

About

Sistema de processamento de dados de usuários

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages