Skip to content

erichiroshi/desafio-backend-backendbrasil-url-shortener

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Magazine Luiza Logo

Desafio Backend - Encurtador de URLs

License: MIT Language: Java Version: 1.0


🧭 Visão Geral

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.


📚 Sumário


⚙️ Tecnologias Utilizadas

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

🏗️ Arquitetura da Solução

[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]

🚀 Execução do Projeto

✅ Pré-requisitos

  • Java 25+
  • Maven 3.9+
  • Mongo
  • Docker (opcional)

📥 Clonar o repositório

git clone https://github.com/erichiroshi/desafio-backend-backendbrasil-url-shortener.git
cd desafio-backend-urlshortner

🐳 Subir containers

Na pasta docker/, execute:

docker-compose up -d

▶️ Rodar a aplicação

./mvnw spring-boot:run

A aplicação estará disponível em: 👉 http://localhost:8080

Acessar a documentação Swagger 👉 http://localhost:8080/swagger-ui.html

📦 Banco de Dados

Por padrão, a aplicação utiliza o mongodb + mongo-express.
Para acessar o console: 👉 http://localhost:8081/


💬 Interagindo com a API

As requisições podem ser testadas via Postman, Insomnia ou via Swagger UI.


📬 Endpoints e Exemplos

1️⃣ Encurtar URL — POST /shorten-url

Exemplo de Request

POST /shorten-url

Request Body

{
    "url": "https://backendbrasil.com.br"
}

Response

HTTP/1.1 200 OK

{
    "url": "https://xxx.com/DXB6V"
}

2️⃣ Redirecionamento URL original — GET /shorten-url/{notificationId}

Exemplo de Request

GET /shorten-url/DXB6V


🤝 Contribuições

Contribuições são sempre bem-vindas!
Para contribuir:

  1. Crie um fork do repositório.
  2. Crie uma branch de feature:
    git checkout -b feature/nome-da-feature
  3. Commit suas mudanças:
    git commit -m "feat: nova funcionalidade"
  4. 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.

🔗 Referências e Créditos


“Software limpo é aquele que expressa a ideia do domínio com clareza e simplicidade.”

About

Resolução do desafio Encurtador de URL proposto pelo Back-End Brasil.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages