Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/lucasrmagalhaes/url_shortener-node

:scissors: Encurtador de URL - Node.js
https://github.com/lucasrmagalhaes/url_shortener-node

dio insomnia mongodb typescript

Last synced: 2 days ago
JSON representation

:scissors: Encurtador de URL - Node.js

Awesome Lists containing this project

README

        






urlShortener



Encurtador de URL. :scissors:






Insomnia



Testando no Insomnia.






Collections no MongoDB - Cloud



Collections no MongoDB - Cloud.


Objetivos do Projeto


  1. Construir uma API com NodeJS e Typescript.

  2. Gerar Hashes únicos para cada entrada.

  3. Conectar as entradas com os hashes gerados.


Requisitos Básicos


     Ter instalado NodeJS.

     Editor de texto da sua escolha.


Parte 1: TypeScript


Linguagem Base

Typescript


     TypeScript é um superconjunto de JavaScript desenvolvido pela Microsoft que adiciona tipagem e alguns outros recursos a linguagem.


Parte 2: MongoDB


Base de Dados

MongoDB


     MongoDB é um banco de dados NoSQL orientado à documentos.


Iniciando o Projeto


     MongoDB é um banco de dados NoSQL orientado à documentos.

     Pode ser utilizado instalado localmente ou em Cloud.

     No projeto vai ser utilizado em Cloud.

     Build a Cluster.

     Free.

     Cluster Name: urlShortener-DIO


npm init

npm i typescript @typescript-eslint/eslint-plugin @typescript-eslint/parser eslint

npm i nodemon express cors



     Criar a pasta: src

     Onde vai ter o código fonte.

     Dentro da pasta: src

     Criar o arquivo: index.ts


- Gera TypeScript em JS.

npm run build:watch

- Restarta a API a cada mudança.

npm run dev



     Testando no Insomnia


GET

http://localhost:5000/test

{
"success": true
}


- shortid

npm install --save shortid

- Matando o servidor

lsof -i tcp:3000

kill -9 5805



POST

http://localhost:5000/shorten

{
"originURL":
"https://cloud.mongodb.com/v2/5ff4fd9e15b4cc384aa5e559#clusters"
}

- Preview


{
"originURL": "https://cloud.mongodb.com/v2/5ff4fd9e15b4cc384aa5e559#clusters",
"hash": "VaDg91-3w",
"shortURL": "http://localhost:5000/VaDg91-3w"
}


- Acessando via Browser: Dados inseridos direto no banco para teste.

http://localhost:5000/VaDg91-3w


- Mongoose

npm i mongoose @types/mongoose

- Typegose

npm i @hasezoey/typegoose


POST
http://localhost:5000/shorten

JSON
{
"originURL":
"https://cloud.mongodb.com/v2/5ff4fd9e15b4cc384aa5e559#clusters"
}

Preview: 200 OK

{
"_id": "5ff670e09f8ffb2f64250618",
"hash": "Z41vvIrNd",
"shortURL": "http://localhost:5000/Z41vvIrNd",
"originURL": "https://cloud.mongodb.com/v2/5ff4fd9e15b4cc384aa5e559#clusters",
"__v": 0
}