|

Como criar uma API REST com NodeJS parte 01 – Instalações, estrutura de projeto e ambiente de desenvolvimento

Oi, tudo bem? No post anterior eu fiz um grande texto sobre tudo que você precisa saber a respeito de API REST. Então se você ainda não sabe muito bem do que se trata, sugiro começar por lá que você vai sair 100% capacitado sobre APIs, beleza?

Bem como eu não gosto de fazer as coisas de qualquer jeito eu vou separar esse assunto em 4 artigos 5 artigos diferentes, desde a instalação de cada coisa pra conseguir trabalhar, até colocar uma api no ar propriamente dita na hospedagem Heroku. Aqui vai o índice dos artigos se você quer pular essa parte inicial

** Como você pode perceber, os artigos ainda estão sendo construídos, então nos siga no Instagram para que você saiba assim que o artigo ficar disponível.

E agora aqui vai um pequeno índice para que possamos nos organizar aqui dentro deste artigo:

Instalações necessárias

Bem para iniciarmos a criação de uma API REST com NodeJS, nós precisamos instalar o Node é claro! Vou partir do pressuposto aqui que você já sabe o que é node ok? Mas em termos gerais, é um motor que executa Javascript no back-end(ou quase isso).

Na parte 03 desta sequencia de artigos eu também vou ensinar você a trabalhar com o banco de dados não relacional MongoDB, então vamos instalar ele também tudo bem? Então vamos lá

Instalando o NodeJS

Existem algumas formas diferentes de instalar o NodeJS, mas eu particularmente gosto de utilizar o NVM, que significa Node Version Manager. Isto é, um gerenciador para que você possa utilizar diversas versões do NodeJS, de acordo com o projeto que você vai trabalhar. Então vamos iniciar instalando o NVM.

Neste artigo eu vou ensinar a instalar no sistema operacional Windows, mas caso você queira, deixe nos comentários que eu posso também adicionar a instalação em outros sistemas como no Linux ou no MAC

  1. Entre neste site e baixe a versão nvm-setup.zip
  2. Execute o nvm-setup.exe
  3. Siga os passos de instalação normalmente como qualquer outro software

Pronto, seguindo esses três passos nós teremos o gerenciador de versões do NodeJS instalado na nossa máquina. Legal, agora vamos para a instalação do Node, propriamente dita

  1. Pressione a tecla Windows + R
  2. Escreva CMD e pressione Enter
  3. Escreva no seu terminal nvm install –lts. Este comando serve para instalar a versão LTS do Node, que é a versão mais estável.
  4. Escreva no seu terminal nvm use –lts. Para utilizar a versão que acabamos de instalar
  5. Para finalizar e testar se seu node foi instalado com sucesso, escreva no terminal node -v e se ele retornar a versão do node instalado, pronto, está tudo correndo bem!

Legal agora temos o NodeJS instalado! Está quase tudo pronto para começarmos a programar…

Instalando o MongoDB

A instalação do MongoDB é um pouco mais simples do que a do Node, Então vamos lá:

  1. Entre neste site e baixe a versão para o seu sistema operacional
  2. Execute o arquivo .msi
  3. Siga os passos de instalação normalmente como qualquer outro software
  4. Abra o seu Terminal com permissão de administrador
  5. Escreva no terminal net start MongoDB para iniciar o serviço do mongo localmente
  6. Para testar se está funcionando e finalizar, vá no chrome(ou qualquer browser) e acesse localhost:27017. Se você receber a seguinte mensagem “It looks like you are trying to access MongoDB over HTTP on the native driver port.” quer dizer que deu tudo certo e seu Mongo já está rodando corretamente.

Bem, em termos de instalação acho que terminamos. Vamos aos próximos passos

Inicialização e estrutura de projeto

Para começar um projeto, vamos do começo! Crie uma pasta com o nome de TutorialNode que é onde ficará o seu projeto.

Assim que criar a pasta, você deve abrir o terminal nesta pasta(para isso, utilize Shift + Botão direito e selecione para abrir o seu terminal). Após ter aberto, escreva no seu terminal:

npm init

Em seguida, pode dar Enter em todas as perguntas que ele fizer, pois nessa parte temos apenas definições de projeto. Vai ser algo mais ou menos como na imagem abaixo

Legal, agora nosso projeto tem um arquivo de configuração do node, onde todas as dependências vão ficar declaradas para sempre que precisarmos rodar. E vamos começar a criar os arquivos e pastas necessárias para trabalhar.

Próximo arquivo que vamos criar vai ser o .gitignore e dentro dele vamos escrever node_modules/ ele vai ficar mais ou menos como na imagem abaixo:

Sempre criamos este arquivo por boas práticas. Quando utilizamos NodeJS, as dependências ficam numa pasta chamada node_modules, e essa pasta fica extremamente grande quando terminamos o projeto, e para não precisar ficar subindo uma pasta desnecessária no repositório do seu projeto.

Beleza, agora para que tudo não fique perdido, vamos criar a estrutura interna de pastas e arquivos para que cada coisa fique no seu lugar. A estrutura deve ficar mais ou menos da seguinte forma

- src/
-- controllers
-- handlers
-- database
--- models
--- connect.js
-- index.js

Ou como a imagem abaixo:

Agora explicando um pouquinho de cada uma das pastas e o que ficará nelas.

  • src/ – Todo código propriamente dito vai ficar dentro dessa pasta. Fora dela apenas arquivos de configuração a respeito do projeto
  • src/controllers/ – Será a pasta dos nossos controladores de cada um de nossos objetos, onde ficará toda a parte da lógica
  • src/handlers/ – Os handlers serão os arquivos de cada uma das rotas. Geralmente o pessoal gosta de deixar direto nos controllers, mas eu acho que separado fica mais interessante caso você precise utilizar dois controllers na mesma rota, por exemplo
  • src/database/ – Todos os arquivos relacionados a comunicação com o banco de dados ficará nesta pasta
  • src/database/models – Aqui ficarão os modelos das coleções que usaremos no banco
  • src/database/connect.js – Neste arquivo teremos a logica de conexão com o banco
  • src/index.js – Aqui será o nosso arquivo inicial, e o qual chamaremos ao inciar nosso servidor.

Legal, é isso, estrutura criada e iniciada, agora podemos começar a desenvolver, certo? CALMA CARA! Mas a próxima etapa é tranquila, eu prometo. Vamos a ela…

Ambiente de desenvolvimento

Para configurar o ambiente de desenvolvimento nós instalaremos três extensões que eu considero indispensável para um projeto, que é o Nodemon, o Cross-env e também o Dotenv-flow

Então para isso, abra o seu terminal na pasta raiz do seu projeto e escreva os seguintes comandos para instalar as dependências:

npm install --save-dev nodemon cross-env
npm install dotenv-flow --save

Legal, tudo instalado, agora na raiz do seu projeto, crie um arquivo chamado .env.development, ainda vazio e em seguida, abra o arquivo package.json e adicione a seguinte linha no nó de scripts

"dev": "cross-env NODE_ENV=development nodemon src/index.js"

Explicando o que significa o código acima:

  • A primeira parte “dev” é o nome do comando que você vai rodar para iniciar o seu servidor da API. Normalmente colocamos dev para identificar que se trata de uma execução em ambiente de desenvolvimento.
  • cross-env NODE_ENV=development. Nesta parte a gente diz especificamente para a nossa aplicação que utilizaremos configurações de desenvolvimento para rodar a aplicação através do arquivo .env.developmentJá explico para que serve este arquivo
  • E a última parte nodemon src/index.js, é para de fato rodar a aplicação. Você pode se perguntar porque não rodamos assim node src/index.js, mas é porque quando estamos desenvolvendo, é comum que a gente mexa nos arquivos e o nodemon facilita isso para nós reiniciando o servidor cada vez que a gente mexe em algum arquivo.

Bem, e pra que a gente criou o .env.development? É pelo seguinte motivo, quando estamos projetando uma aplicação é comum que tenhamos que colocar variáveis de configuração, como por exemplo o Token de algum serviço, as credenciais de algum e-mail etc. E em desenvolvimento nós utilizamos credenciais diferentes das credenciais de produção, então no futuro, teremos um outro arquivo chamado .env.production para colocar tudo que seja de produção. Mas isso é um pouco complexo e eu posso explicar melhor mais pra frente.

Ficará mais ou menos como na imagem abaixo

Perfeito, agora configuramos nosso ambiente, tudo criado e lindo como deve ser! Podemos de fato começar a desenvolver. Mas isso vai ficar para o próximo artigo:

Espero que este post tenha te proporcionado algum conhecimento a mais, se tiver dúvidas deixe nos comentários… Até a próxima, e tchau! 😉

Posts Similares

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *