Este projeto implementa um serviço backend de encurtador de url para o desafio técnico do Back-End Brasil.
A aplicação permite encurtar url via API REST, utilizando Spring Boot 3, Mongo e Springdoc OpenAPI.
- 🧭 Visão Geral
- 📚 Sumário
- ⚙️ Tecnologias Utilizadas
- 🏗️ Arquitetura da Solução
- 🚀 Execução do Projeto
- 💬 Interagindo com a API
- 📬 Endpoints e Exemplos
- 🤝 Contribuições
- 🔗 Referências e Créditos
| Tecnologia | Finalidade |
|---|---|
| ☕ Java 25 | Linguagem principal |
| 🍃 Spring Boot 3.x | Framework de aplicação |
| 📦 Spring Data MongoDB | Persistência de dados NoSQL |
| 🩺 Spring Boot Actuator | Monitoramento e métricas da aplicação |
| ⚡ Spring Boot DevTools | Hot reload para desenvolvimento |
| 🌐 Spring Web (Spring MVC) | Criação das rotas REST |
| 📘 Springdoc OpenAPI (Swagger UI) | Documentação interativa da API |
| 🍁 Commons Lang | Gerar sequências aleatórias |
| ※ RFC 9457 Problem Details | Tratamento de erros |
| 🧰 Lombok | Redução de boilerplate |
| 🐳 Docker | Containerização do ambiente |
[Cliente / Postman]
↓
REST API (Spring Boot)
↓
[NotificationController]
├── POST /shorten-url → encurtar url
├── GET /shorten-url/{id} → redirecionamento para a URL original
↓
[Serviços]
└── UrlService (camada de negócio)
↓
[Banco de Dados Mongo]- Java 25+
- Maven 3.9+
- Mongo
- Docker (opcional)
git clone https://github.com/erichiroshi/desafio-backend-backendbrasil-url-shortener.git
cd desafio-backend-urlshortnerNa pasta docker/, execute:
docker-compose up -d./mvnw spring-boot:runA aplicação estará disponível em: 👉 http://localhost:8080
Acessar a documentação Swagger 👉 http://localhost:8080/swagger-ui.html
Por padrão, a aplicação utiliza o mongodb + mongo-express.
Para acessar o console: 👉 http://localhost:8081/
As requisições podem ser testadas via Postman, Insomnia ou via Swagger UI.
Exemplo de Request
POST /shorten-url
Request Body
{
"url": "https://backendbrasil.com.br"
}Response
HTTP/1.1 200 OK
{
"url": "https://xxx.com/DXB6V"
}Exemplo de Request
GET /shorten-url/DXB6V
Contribuições são sempre bem-vindas!
Para contribuir:
- Crie um fork do repositório.
- Crie uma branch de feature:
git checkout -b feature/nome-da-feature
- Commit suas mudanças:
git commit -m "feat: nova funcionalidade" - Envie um Pull Request.
📜 Boas práticas
- Adicione testes unitários.
- Documente suas alterações no código.
- Use mensagens de commit seguindo o padrão Conventional Commits.
- Desafio original: Backend Brasil - url-shortener
- Baseado no conteúdo do canal Build & Run
- Repositório do projeto: desafio-backend-url-shortener
- Desenvolvido por Eric Hiroshi
- Licença: MIT
“Software limpo é aquele que expressa a ideia do domínio com clareza e simplicidade.”
