: API de Encurtamento de Links

Sobre:

Esse repositório trata-se do código de uma API, cuja finalidade é servir, através de consultas feitas por um ORM num um banco de dados SQL, rotas que encaminhem para criar usuários da aplicação, encurtar novas URLs de um usuário logado, redirecionar para a URL correta através da URL encurtada criada, obter todas as URLs que já foram encurtados pelo usuário, obter um ranking de cliques em URLs, e, também, poder deletar URLs encurtadas.

Rotas:

  • POST "/users/signup": Enviando um payload contendo email e password, cria um novo usuário.
  • POST "/auth/sign-in": Enviando um payload contendo name, email e passwod, faz o login de um usuário, obtendo-se uma chave temporária.
  • POST (🔑Rota Autenticada🔑) "/urls/shorten": Enviando-se uma URL por payload, encurta-se a URL, obtendo-se a url da URL encurtada.
  • GET "/urls/:id": Enviando-se o id da URL através dos parâmetros da requisição, obtém-se as informações daquela URL encurtada
  • GET (🔑Rota Autenticada🔑) "/urls/open/:shortUrl": Enviando-se a URL encurtada através dos parâmetros da requisição, redireciona da URL encurtada para a URL original.
  • GET (🔑Rota Autenticada🔑) "/users/me": Obtém-se todas as URLs encurtadas do usuário e as informações dele
  • GET "/ranking": Obtém-se um ranking ordenado em ordem decrescente de visitas para as URLs de todos os usuários cadastrados na aplicação.
  • DELETE (🔑Rota Autenticada🔑) "/urls/:id": Enviando-se o id da URL que se quer excluir, exclui a URL encurtada do usuário.

🤔 Como acesso uma rota autenticada?

Possuindo-se a chave temporária, envia-se, através dos headers da requisição, um header de name "Authentication" e key "Bearer + (chave temporária)".

Link para Demo:

Clique aqui para acessar => Shortly API

Como e porquê foi desenvolvido:

A API foi desenvolvida para praticar meus aprendizados em NestJS e Prisma ORM, atualizando para um framework mais intuitivo, rápido e seguro, um projeto que eu já tinha desenvolvido em Express.js e queries de SQL puras.

Stack de Tecnologias Utilizadas:

nodejs nestjs prismaorm postgresql

Como executar no Seu Computador

  1. Instale as dependências:
npm i
  1. Crie um arquivo ".env" conforme o exemplo do arquivo ".env.example"
  2. Popule o banco de dados com os modelos:
npx prisma migrate dev
  1. Execute-o:
npm run start:dev
  1. Ou, opcionalmente, você pode buildá-lo:
npm run build
  1. E, então, acesse-o através de http://localhost:3000