Shorty Back é a API do Shortly, um site encurtador de URLs.
-
Rota:
/signup
-
Método:
POST
-
Exemplo de Body:
{ "name": "João", "email": "joao@mail.com.br", "password": "joao", "confirmPassword": "joao" }
-
Possíveis erros:
- Campos ausentes, vazios ou com tipos diferente de string
- Campo email com email no formato inválido
- Campo password e confirmPassword devem ser iguais
- Já existe um usuário com os dados informados
-
Rota:
/signin
-
Método:
POST
-
Exemplo de Body:
{ "email": "joao@mail.com.br", "password": "joao", }
-
Exemplo de Resposta:
{ "token": "oldjnbkashdfucoslk.fasjihfaio.ashuifjhabicih", }
-
Possíveis erros:
- Campos ausentes, vazios ou com tipos diferente de string
- Campo email com email no formato inválido
- Não existe usuário com os dados informados
-
Rota:
/urls
-
Método:
GET
-
Exemplo de Resposta:
[ { "id": 2, "url": "https://google.com" }, { "id": 1, "url": "https://youtube.com" } ]
-
Rota:
/urls/:id
-
Método:
GET
-
Exemplo de Resposta:
{ "id": 1, "shortUrl": "bd8235a0", "url": "https://google.com" }
-
Possíveis erros:
- Não existe URL com o id informado
- Rota:
/urls/open/:shortUrl
- Método:
GET
- Possíveis erros:
- Não existe URL encurtada
-
Rota:
/ranking
-
Método:
GET
-
Exemplo de Resposta:
[ { "id": 2, "name": "Maria", "linksCount": 5, "visitCount": 100000 }, { "id": 1, "name": "João", "linksCount": 2, "visitCount": 7 } ]
- Enviar Header Authorization no formato:
Bearer {token}
- Possíveis erros:
- Header Authorization ausente
- Token inválido
-
Rota:
/urls/shorten
-
Método:
POST
-
Exemplo de Body:
{ "url": "https://youtube.com", }
-
Exemplo de Resposta:
{ "shortUrl": "a8745bcf", }
-
Possíveis erros:
- Campo url ausente, vazio ou com tipo diferente de string
- Campo url com url inválida
-
Rota:
/users/me
-
Método:
GET
-
Exemplo de Resposta:
{ "id": 1, "name": "João", "visitCount": 7, "shortenedUrls": [ { "id": 1, "shortUrl": "a8745bcf", "url": "https://youtube.com", "visitCount": 5 }, { "id": 2, "shortUrl": "bd8235a0", "url": "https://google.com", "visitCount": 2 } ] }
-
Possíveis erros:
- Usuário não existe
- Rota:
/urls/:id
- Método:
DELETE
- Possíveis erros:
- Não existe URL com o id informado
- A URL não pertence ao solicitante da requisição
- Rota:
/logout
- Método:
POST
Atenção: para rodar o projeto é preciso ter o PostgreSQL instalado em sua máquina.
- Clone esse repositório:
git clone https://github.com/anatfernandes/shortly-back.git
- Instale as dependências:
$ npm install
-
Crie um banco de dados PostgreSQL com o nome que desejar
-
Rode o comando na raiz do projeto para criar as tabelas:
#troque nome_do_banco pelo nome do banco de dados criado no passo anterior $ sudo su -c "psql -d nome_do_banco -f dump.sql" postgres
-
Configure o arquivo
.env
usando como base o arquivo.env.example
-
Inicie o projeto:
$ npm run dev
-
Instale e configure o frontend em https://github.com/anatfernandes/shortly
-
Divirta-se nas rotas usando de URL base:
http://localhost:{ENV_PORT}