/http-node-api

O objetivo dessa aplicação era criar uma API sem nenhuma dependência externa, apenas utilizando as bibliotecas nativas do NodeJS. Tudo foi feito utilizando 100% Javascript.

Primary LanguageJavaScriptMIT LicenseMIT

API 100% NodeJS

Uma api sem dependências!

Dependencies Language Top License

Conteúdos

➜ Sobre o projeto
➜ O que aprendi
➜ Como usar
➜ Rotas


🔎 Sobre o projeto

Voltar ao topo

O objetivo dessa aplicação era criar uma API sem nenhuma dependência externa, apenas utilizando as bibliotecas nativas do NodeJS. Tudo foi feito utilizando 100% Javascript.


➡ Front-end

O front-end dessa API também foi feito utilizando 100% Javascript, sem arquivos HTML e CSS pré-criados.

Para visualizar o resultado acesse o repositório: joaovictornsv/http-node-api-web


➡ Banco de Dados

Não foi utilizado nenhum banco de dados, os registros são armazenados em um arquivo users.txt. Escolhi trabalhar com txt ao invés de JSON para ter o desafio de ler arquivos usando o Node.


➡ Arquitetura

Tentei utilizar, na medida do possível, o conceito da Clean Architecture, separando os arquivos em Controllers, Services e Repository.


➡ Tratamento de erros

Como o módulo http nativo do Node não nos permite usar o request.body, tive que adaptar minhas rotas e validar os dados passados por elas. Além disso, a estrutura da rota também foi validada, pois diferente de bibliotecas como o ExpressJS, onde passar a string /users/:id em uma função de request já nos permite acessar o parâmetro com facilidade, no Node esse acesso não é permitido. Para isso tive que criar modos de obtê-los.

Para os tratamentos e validações utilizei as famosas RegEx's, as quais aprendi bastante sobre como atuam durante o desenvolvimento desse projeto.


➡ Funcionalidades ✔️

A API possui um sistema de CRUD completo (Create, Read, Update and Delete) e possui as seguintes funcionalidades:

Funções principais:

  • Listagem de usuários ou usuário único
  • Criação de novo usuário
  • Alteração de dados de um usuário
  • Remoção de um usuário

Outras funcionalidades:

  • Validação de dados
  • Validação de rotas
  • Tratamento de erros usando Middlewares
  • Gerador de IDs únicos
  • Uso de Controller, Repository e Services

📚 O que aprendi

Voltar ao topo

Ter que implementar cada etapa da api, desde o tratamento dos dados até o retorno da resposta para o cliente contribuiu bastante para treinar minha lógica de programação, a eficiência em resolver problemas pequenos e também a criar códigos mais legíveis e limpos. Além disso, aprendi a utilizar RegEx's para realizar várias validações no projeto. Por fim, acredito que criar essa API "pura" me fez evoluir mais um degrau nessa jornada de back-end.


ℹ️ Como usar

Voltar ao topo

# Clone this repository
$ git clone https://github.com/joaovictornsv/http-node-api

# Go into the repository
$ cd http-node-api

# Run the server
$ yarn start

↪️ Rotas

Voltar ao topo

Run in Insomnia}

Ver rotas

  • Home page
/
  • Get all users
/users
  • Get a specific user
/users/:id

  • Create a user
users/data?...

Search params:
- name
- email
- age
- city

  • Update a user
users/:id/data?...

Search params:
- name
- email
- age
- city

  • Delete a user
/users/:id

Profile Made with 💙 by João Victor