Este repositório contém a implementação de um serviço de encurtamento de URLs desenvolvido com Spring Framework (Java), Gradle como sistema de build e PostgreSQL como banco de dados. O serviço tem como objetivo encurtar URLs longas e gerar links curtos que podem ser compartilhados de forma mais conveniente.
- Encurtar URLs longas, gerando um link curto composto por 5 a 10 caracteres alfanuméricos.
- Salvar a URL encurtada no banco de dados com um prazo de validade configurável.
- Redirecionar o usuário para a URL original ao acessar a URL encurtada.
- Retornar erro HTTP 404 caso a URL encurtada não seja encontrada no banco de dados.
Método: POST
URL: {{host}}/shorten-url
Descrição: Recebe uma URL longa e retorna a versão encurtada dela.
Exemplo de Requisição:
{
"url": "https://backendbrasil.com.br"
}Exemplo de Resposta (200 OK):
{
"url": "https://xxx.com/DXB6V"
}Método: GET
URL: {{host}}/DXB6V
Descrição: Quando a URL encurtada é acessada, o sistema deve redirecionar o usuário para a URL original.
Exemplo de Requisição:
Acessar a URL https://xxx.com/DXB6V.
Exemplo de Resposta (301 Moved Permanently):
Redireciona para a URL original salva no banco de dados.
Método: GET
URL: {{host}}/INVALID_URL
Descrição: Se a URL encurtada não for encontrada no banco de dados, será retornado um erro HTTP 404.
Exemplo de Resposta (404 Not Found):
{
"error": "URL not found"
}- O encurtador de URLs recebe uma URL longa como parâmetro.
- O encurtamento terá entre 5 a 10 caracteres alfanuméricos.
- Apenas letras e números são permitidos na URL encurtada.
- A URL encurtada será salva no banco de dados com um prazo de validade configurável.
- Redirecionamento para a URL original ou retorno de erro 404 quando a URL não for encontrada.
- Spring Boot: Para o desenvolvimento do backend.
- Gradle: Como sistema de build.
- PostgreSQL: Como banco de dados para armazenar as URLs.
- JPA (Java Persistence API): Para persistência e manipulação de dados.
- RESTful API: Para a criação de endpoints de comunicação com o frontend.
- Clone o repositório:
git clone https://github.com/theodorol/UrlShort.git- Acesse o diretório do projeto:
cd UrlShort- Configure o banco de dados PostgreSQL nos arquivos de configuração de ambiente (
application-dev.propertiespara desenvolvimento eapplication-prod.propertiespara produção):
- Para Desenvolvimento (
application-dev.properties):
spring.datasource.url=jdbc:postgresql://localhost:5432/encurtador_db_dev
spring.datasource.username=seu_usuario
spring.datasource.password=sua_senha- Para Produção (
application-prod.properties):
spring.datasource.url=jdbc:postgresql://localhost:5432/encurtador_db_prod
spring.datasource.username=seu_usuario
spring.datasource.password=sua_senha- Execute o aplicativo com o Gradle:
./gradlew bootRunO servidor estará disponível em http://localhost:8080.
- O banco de dados PostgreSQL será utilizado para armazenar as URLs encurtadas, juntamente com a data de validade configurada.
- A estrutura de banco de dados inclui uma tabela para armazenar o link original, o link encurtado e o prazo de validade.
Se você tem alguma sugestão ou melhoria, sinta-se à vontade para abrir uma issue ou enviar um pull request.