Skip to content

TheodoroL/UrlShort

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Desafio Backend: Encurtador de URLs

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.

Funcionalidades

  • 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.

Endpoints

1. Encurtar URL

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"
}

2. Redirecionar para URL Original

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.

3. Erro ao Acessar URL Não Encontrada

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"
}

Requisitos

  • 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.

Tecnologias Utilizadas

  • 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.

Instruções de Execução

  1. Clone o repositório:
git clone https://github.com/theodorol/UrlShort.git
  1. Acesse o diretório do projeto:
cd UrlShort
  1. Configure o banco de dados PostgreSQL nos arquivos de configuração de ambiente (application-dev.properties para desenvolvimento e application-prod.properties para 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
  1. Execute o aplicativo com o Gradle:
./gradlew bootRun

O servidor estará disponível em http://localhost:8080.

Banco de Dados

  • 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.

Contribuições

Se você tem alguma sugestão ou melhoria, sinta-se à vontade para abrir uma issue ou enviar um pull request.

About

API COM FOCO DE ENCURTAR URL USANDO JAVA COM SPRING E BANCO DE DADOS POSTGRES

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages