Sobre • NodeJS - API REST • Instalação • Tecnologias • Autor
Projeto desenvolvido durante o módulo II do bootcamp Ignite da Rocketseat cujo objetivo foi entender como criar uma API REST com NodeJS utilizando boas práticas e tecnologias do ecossistema Node.
Projeto desenvolvido durante o módulo II do Ignite 2023 na trilha de NodeJS cujo objetivo foi entender como construir uma API REST na prática utilizando as melhores práticas e ferramentas do ecossistema Javascript.
O primeiro capítulo do módulo foi voltado à estruturação da aplicação, durante as aulas que o compõem:
- Conhecemos o Fastify (Framework web que utilizamos no projeto).
- Entendemos o Typescript, como ele funciona, suas vantagens e como utiliza-lo em nossas aplicações.
- Criarmos o servidor da nossa aplicação com Fastify e realizamos seu setup inicial.
- Conhecemos o ESLint, as razões para usa-lo e como configura-lo.
Nesse capitulo vimos como utilizar banco de dados na nossa aplicação. Vimos quais as formas de acessar um banco através do código e as suas diferenças. Além disso, vimos:
- O que é e como configurar o Knex na nossa aplicação.
- O que são e como criar migrations.
- Como criar tabelas utilizando o queryBuilder Knex.
- Como realizar queries com o Knex.
- Como definir e acessar variáveis de ambiente.
- Como tratar env com a lib de validação Zod.
Aqui o conteúdo foi o core da projeto, definimos os requisitos funcionais e não funcionais e as regras de negócio da nossa aplicação. Abaixo uma lista dos assuntos abordados e tarefas realizadas durante esse capitulo:
-
Definição dos Requisitos funcionais, não funcionais e Regras de negocio:
-
Requisitos Funcionais (RF):
- O usuário deve poder criar uma conta.
- O usuário deve poder obter um extrato da sua conta.
- O usuário deve poder visualizar uma transação única.
- O usuário deve poder listar todas transações que já ocorreram.
-
Regras Não Funcionais (RNF):
- Será criado ao longo da aplicação.
-
Regras de Negócios (RN):
- O usuário só pode visualizar transações que ele criou.
- Deve ser possível identificar o usuário entre as requisições.
- A transação pode do tipo crédito que somará ao valor total ou débito que será subtraído.
-
-
Compreensão e adição de plugins no Fastify.
-
Criação de transações.
-
Como adicionar tipagem no Knex.
-
Listagem de transações.
-
Resumo de transações.
-
Como utilizar cookies no Fastify.
-
Como validar existência de cookie.
-
Como configurar um hook global.
Nesse capitulo entendemos sobre a importância de realizar testes automatizados, incluindo os conceitos de testes unitários, testes de integração e testes e2e, assim como a importância da pirâmide de testes para se ter uma estratégia de testes sólida e eficiente. Durante as aulas nós:
-
Conhecemos os tipos e o que é a piramide de testes.
-
Testes unitários são testes que validam o comportamento de uma única unidade de código, como uma função ou método. Eles são úteis para garantir que cada parte da aplicação esteja funcionando corretamente, sem depender de outras partes.
-
Testes de integração são testes que validam a integração entre várias partes da aplicação, como a integração entre a camada de banco de dados e a camada de serviço. Eles são importantes para garantir que a aplicação esteja funcionando corretamente como um todo.
-
Testes e2e (end-to-end) são testes que validam o comportamento da aplicação como um todo, simulando a interação do usuário com a aplicação. Eles são importantes para garantir que a aplicação esteja funcionando corretamente em todos os níveis, desde a camada de interface até a camada de banco de dados.
-
A pirâmide de testes é uma estratégia que se baseia em ter mais testes unitários e menos testes de integração e e2e, pois testes unitários são mais rápidos e fáceis de escrever e manter do que outros tipos de testes.
-
-
Criamos testes para nossa API.
-
Categorizamos os testes criados.
-
Configuramos um banco de teste.
No capitulo final do módulo vimos:
- Como preparar nossa aplicação para ir ao ar.
- Configurações necessárias e pontos de atenção para o deploy.
- Uso da ferramenta tsup para buildar o projeto.
- Como fazer o deploy da nossa API REST na plataforma Render.
As requisições para testar a API estão disponíveis no botão abaixo e o link para acessar a API no ar está na descrição do repositório:
Antes de começar, você vai precisar ter instalado em sua máquina as seguintes ferramentas: Git e Node.js. Além disso é bom ter um editor para trabalhar com o código como VSCode.
# Clone este repositório
$ git clone git@github.com:MrRioja/nodejs-api-rest.git
# Acesse a pasta do projeto no terminal/cmd
$ cd nodejs-api-rest
# Instale as dependências
$ npm install
# Caso prefira usar o Yarn execute o comando abaixo
$ yarn
# Execute a aplicação em modo de desenvolvimento
$ npm run dev
# Caso prefira usar o Yarn execute o comando abaixo
$ yarn dev
# O servidor iniciará na porta 3333 ou na porta definida no arquivo .env na variável PORT - acesse <http://localhost:3333>