API REST desenvolvida em Spring Boot para geração de QR Codes com armazenamento automático na AWS S3. Solução containerizada com Docker, ideal para integração em sistemas que necessitam de geração dinâmica de QR Codes.
- 🎯 Geração de QR Codes personalizados
- ☁️ Upload automático para AWS S3
- 🐳 Containerização com Docker
- 🚀 API REST simples e eficiente
- 📦 Build otimizado com Maven
| Tecnologia | Versão | Descrição |
|---|---|---|
| Java | 17 | Linguagem de programação |
| Spring Boot | 3.5.8 | Framework web |
| ZXing | 3.5.0 | Biblioteca para geração de QR Codes |
| AWS SDK | 2.25.61 | Integração com AWS S3 |
| Maven | 3.9.6 | Gerenciador de dependências |
| Docker | - | Containerização |
- Java 17+
- Maven 3.9+
- Docker (opcional)
- Conta AWS com acesso ao S3
- Clone o repositório
git clone <seu-repositorio>
cd qrcodegenerator- Configure as variáveis de ambiente
Crie um arquivo .env na raiz do projeto:
AWS_ACCESS_KEY_ID=<sua-access-key>
AWS_SECRET_ACCESS_KEY=<sua-secret-key>
AWS_REGION=us-east-2
AWS_BUCKET_NAME=qrcodestoragesatushi# Compilar o projeto
mvn clean package
# Executar a aplicação
java -jar target/qrcode-0.0.1-SNAPSHOT.jar# Build da imagem
docker build -t qrcode-generator \
--build-arg AWS_ACCESS_KEY_ID=<sua-access-key> \
--build-arg AWS_SECRET_ACCESS_KEY=<sua-secret-key> \
.
# Executar o container
docker run -p 8080:8080 qrcode-generatorPOST /api/qrcode/generate
Content-Type: application/json
{
"qrcodeurl": "https://exemplo.com"
}Resposta (Exemplo):
{
"qrcodeUrl": "https://s3.us-east-2.amazonaws.com/qrcodestoragesatushi/qrcode-123456.png",
"status": "success"
}qrcodegenerator/
├── src/
│ ├── main/
│ │ ├── java/com/dev/qrcode/
│ │ │ ├── controller/ # Controllers REST
│ │ │ ├── service/ # Lógica de negócio
│ │ │ ├── config/ # Configurações AWS
│ │ │ └── QrcodeApplication.java
│ │ └── resources/
│ │ └── application.properties
│ └── test/
├── Dockerfile
├── pom.xml
└── README.md
⚠️ Nunca commite credenciais AWS no repositório- 🔐 Use variáveis de ambiente para informações sensíveis
- 🛡️ Configure políticas IAM adequadas no AWS S3
- 🔑 Utilize AWS Secrets Manager em produção
Contribuições são bem-vindas! Sinta-se à vontade para abrir issues e pull requests.
- Fork o projeto
- Crie uma branch para sua feature (
git checkout -b feature/NovaFuncionalidade) - Commit suas mudanças (
git commit -m 'Adiciona nova funcionalidade') - Push para a branch (
git push origin feature/NovaFuncionalidade) - Abra um Pull Request
Desenvolvido com ☕ e Java