Como construir uma REST API NodeJS com Express e MongoDB

Diogo Biscaia

--

Neste tutorial vamos aprender a fazer uma REST API relativamente a registo de voluntariado em Portugal.

Pre-Requisitos

Existem alguns pre-requisito para se poder realizar este projeto. É necessário ter o NodeJS instalado na máquinas assim como as aplicações:

Inicio da Aplicação

O primeiro passo para a criação da nossa criação é criar uma conta no MongoAtlas se ainda não tens uma podes criar uma conta aqui.

Setup MongoDB Atlas Cluster

Vamos criar uma base de dados para podermos inserir e armazenar os nossos dados. Primeiro iremos criar o nosso projeto onde iremos trabalhar:

Uma vez criado o nosso projeto podemos ver o dashboard onde podemos criar clusters.

Vamos então criar um novo cluster chamado Voluntariado-Cluster e selecionar todos os detalhes como mostra a figura:

Conseguimos então ver o nosso Cluster criado:

Criação da Base de Dados

Criamos então a cluster e agora é tempo de criarmos a base de dados. Clica em collections para criar a base de dados.

De seguida vamos clicar em Add My Own Data

Eu dei o nome da nossa base de dados voluntariado.

Em baixo vê se o dashboard criado. Temos agora uma base de dados com uma coleção vazia.

Vamos inserir o nosso primeiro documento clicando em insert document

Criação da Nossa App

Iremos então começar o desenvolvimento da nossa API para isso teremos que instalar algumas dependências no nosso projeto.

Como qualquer projeto começamos com npm init na nossa linha de comandos para a criação do mesmo.

De seguida vamos instalar as seguintes dependências:

  • Mongoose
  • Express
  • Swagger-jsdo
  • Swagger-ui-express
  • Nodemon
npm install express mongoose swagger-jsdoc@6.1.0 swagger-ui-express nodemon

Uma vez adicionadas as nossa dependências vamos criar a nossa estrutura de pastas e ficheiros.

Começamos pelo nosso ficheiro inicial app.js nele iremos colocar o seguinte código:

Configurar Mongo na nossa Aplicação

Vamos definir a classe de configuração onde ele cria uma conexão com a string da conexão. Estamos a usar o Mongoose para conectarmo nos com o MongoDB para todas as consultas. O Mongoose facilita a interação com o MongoDB. Para isso criamos um ficheiro chamado mongodb.js onde nele têm a conexão ao nosso Atlas.

O mongo URL iremos buscar a partir do Mongo Atlas para isso iremos voltar ao nosso cluster e iremos clicar em connect. Iremos adicioanr o nosso Endereço se quiseres que este projeto seja privado senão simplesmente podemos permitir o acesso por qualquer utlizador. Iremos criar também um username e definir uma password. Não esquecer dessa password pois iremos precisar dela para fazer a conexão à nossa aplicação como mostra a imagem a baixo.

De seguida iremos selecionar a opção Connect your aplication como mostra a imagem:

É necessário colocar a linguagem e a versão correta

Vamos colocar a string de conexão e o nome do banco de dados no mongodb.js. Atenção que se a senha em URL tiver caracteres especiais na senha é preciso que estes sejam codificados.

CRUD Operations

Uma vez criada a ligação à nossa base de dados temos tudo que precisamos para continuar a nossa aplicação e suas respetivas operações. Na nossa pasta de Models iremos criar 2 ficheiros. O modelo de Voluntario.js e Instituicao.js. Ambos os modelos encontram-se abaixo:

Uma vez criados os nossos Schemas dos modelos. Iremos criar as nossa operações. O ficheiro irá se chamar routes.js é boa prática separar o routes do controller com o swagger mas para a simplificação deste projeto iremos colocar tudo num único ficheiro. O código deste ficheiro irá ter as funções CRUD (Create-Read-Update-Delete) encontrando a baixo

Uma vez criados estes ficheiros simplesmente podemos correr a nossa aplicação com npm start

De seguido basta-nos ligar ao https://localhost:3000/api-docs/#/ e ver o resultado da nossa aplicação:

Extra! Colocar a nossa API num servidor cloud (Microsoft Azure)

Uma vez com a nossa aplicação a funcionar iremos colocar-la num servidor cloud neste caso o Microsoft Azure. O primeiro passo é verificar se têm-se a extensão do Azure no nosso VS Code.

De seguida iremos abrir a nossa conta Azure se ainda não tens uma podes criar uma aqui!

Uma vez feito o loggin na nossa conta iremos clicar no botão Criar no Azure Cosmos DB.

Para criação é necessário preencher pelo menos os campos destacados na imagem e escolher a subscrição free e clicar em “Rever + Criar”

Uma vez criado iremos escolher Node.js como nossa plataforma

iremos de seguida substituir esse mesmo código no nosso mongodb.js

Para fazer deploy da app é só preciso carregar na seta azul.

Iremos de seguida selecionar a opção Create new Web app -> Definir o nome da app ->Selecionar a versão do NodeJs (Node 12 neste caso)

E depois podemos ver o resultado com o link: https://voluntariadoapi.azurewebsites.net/api-docs/

E pronto conseguimos fazer de uma forma simplificada uma API utilizando MongoDB, NodeJs e Swagger tudo em uma aplicação. Espero poder ter ajudado. Se algo correu mal o projeto encontra-se em

Obrigada pela atenção e bom trabalho!

--

--

No responses yet