b92c / url-shortener

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Encurtador de URL's

Powered by Lumen a Laravel micro-framework 💡
Laravel

Um projeto simples com o propósito de encurtar URL's.

Utilização

  • O "core" principal está em:
    • Criar uma URL encurtada através de uma requisição POST.
    • Conseguir acessar a URL encurtada através de uma requisição GET.
  • Fazer a verificação da validade de uma URL.

Como usar (passo a passo para instalação)

Requisitos:

  • Docker.
  • Docker Compose.

Toda a aplicação depende do container docker, então é indispensável tê-lo devidamente instalado em sua máquina.

Mão na massa:

Dentro da pasta do projeto que você baixou em sua máquina, vamos fazer a build da imagem:

$ docker-compose build

Quando concluído você terá seu docker pronto para uso. Vamos levantar o ambiente e vamos fazer isso usando o comando:

$ docker-compose up -d

A flag -d permite a execução do Docker em segundo plano, deixando o terminal livre para uso.

O comando abaixo irá rodar um Shell Script com alguns outros comandos que vão finalizar a instalação do nosso projeto para uso. Neles estão incluídos a instalação das dependências do composer, ajustes de permissão, a criação do arquivo .env e irá rodar a primeira migration.

$ .docker/init.sh

Agora já estamos com nosso ambiente funcionando e você pode conferir a mensagem de boas vindas aqui.

Atenção: caso receba mensagens de erro

Elas podem acontecer pelo fato das portas 8080 e 3306 já estarem sendo usadas por outro serviço. Nesse caso é importante alterar essas portas para uma que não esteja sendo utilizada. Para "matar" o nosso container Docker é só executar o comando abaixo:

$ docker-compose down

Usando o encurtador

O endereço (endpoint) desse projeto é o http://localhost:8080/. Ter ou o Postman, Insomnia instalado na sua máquina irá facilitar nas chamadas de requisição POST e GET. Fique à vontade para escolher outro método de sua preferência.

Abaixo um exemplo de uso ilustrativo:

Método URI Ação Exemplo
POST /{url} URL a ser encurtada POST https://arcoeducacao.com.br/
GET /{slug} Acessa URL encurtada GET http://localhost:8080/abc123ab

O código HTTP do retorno pode conter um dos seguintes valores:

  • 201 (created) caso a URL esteja sendo encurtada pela primeira vez ou a opção URL_ALLOW_MULTIPLE esteja ativada
  • 200 (OK) caso a URL já exista e a opção URL_ALLOW_MULTIPLE esteja desativada

Acessando uma URL a partir da sua versão encurtada

Você pode realizar uma requisição GET pelo Postman ou Insomnia mas como o objetivo é acessar e renderizar o site corretamente a melhor forma de fazer isso é usando o campo de endereço do seu navegador de preferência.

Testes

Este projeto inclui teste para garantir, dentro do possível, seu funcionamento. Para executá-lo rode o comando abaixo no diretório do projeto:

$ ./test.sh

Tecnologias que envolvem esse projeto

About


Languages

Language:PHP 95.1%Language:Shell 2.8%Language:Dockerfile 2.1%