Este é um projeto de um encurtador de URLs, implementado em Go. Ele é constituído por uma API REST que recebe URLs longas e retorna um código curto único que pode ser usado para redirecionar para a URL original. A arquitetura do projeto é composta por várias camadas, incluindo uma camada de banco de dados, camadas de acesso aos dados, camadas de lógica de negócios e camadas de API.
- Encurtar URLs: O usuário pode fornecer uma URL longa e obter um código curto único em troca.
- Redirecionar de acordo com o código: Quando um código é fornecido, o serviço redireciona para a URL original correspondente a esse código.
- Expiração de URLs: Os códigos de URL expiram após um período de tempo especificado.
Para rodar o projeto localmente, é necessário ter Go e Docker instalados. Siga os seguintes passos:
- Clone este repositório:
git clone https://github.com/dev81log/url_short.git
- Navegue até o diretório do projeto:
cd url_short
- Rode o banco de dados com Docker:
docker-compose up
- Compile e rode a aplicação:
go build ./url_short
A aplicação estará rodando na porta 8080.
- Para encurtar uma URL, faça uma solicitação POST para
/
com a URL como JSON no corpo da solicitação. Exemplo:curl -X POST -H "Content-Type: application/json" -d '{"url":"https://www.example.com"}' http://localhost:8080/
- Para redirecionar para uma URL, faça uma solicitação GET para
/<code>
. Exemplo:curl http://localhost:8080/ABC123
Para rodar os testes do projeto, use o seguinte comando:
go test ./...
Contribuições são bem-vindas! Por favor, abra um issue ou faça um pull request.
Este projeto está licenciado sob a MIT License.