Skip to content

gabrielferreira02/encurtador-de-link

Repository files navigation

Encurtador de url

C# .Net Redis Postgres

Sobre o projeto

Projeto feito em C# + ASP.NET + Entity Framework Core que implementa um encurtador de url. Para o api foi utilizado PostgreSQL como base dados, Redis para o cache, utilização de logs para observabilidade, biblioteca OneOf para tratamento de erros da api e Docker para containerização da aplicação.

A api contém apenas duas rotas. Uma GET com um codigo de parametro, associado a url desejada que fará o redirecionamento para o link original, e, uma rota POST que cria uma nova url encurtada.

A rota GET possui a seguinte regra de negócio: O codigo passado por parametro é buscado no redis primeiramente e se existir é redirecionado para a url de destino. Caso não exista é buscado na base dados e se existente redireciona a url cadastrada, senão é retornado o satus http not found.

Já a rota POST é passado um dto no body apenas com o campo url. Se o campo for vazio é retornado um bad request, caso contrário o fluxo continua e buscará na base de dados se já existe a url cadastrada. Caso exista retornará o registro existente senão um novo registro será criado no banco de dados e retornará um status created

Como rodar o projeto

1 - Para utilizar o projeto é necessário clonar o repositório e ter o docker instalado em sua máquina

git clone https://github.com/gabrielferreira02/encurtador-de-link.git
cd encurtador-de-link

2 - Execute os comandos

docker compose build
docker compose up # Adicione -d se quiser que rode em segundo plano.

3 - Para acessar a documentação do projeto, após iniciada a api acesse

http://localhost:5140/scalar