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.
➜ Sobre o projeto
➜ O que aprendi
➜ Como usar
➜ Rotas
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.
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
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.
Tentei utilizar, na medida do possível, o conceito da Clean Architecture, separando os arquivos em Controllers, Services e Repository.
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.
A API possui um sistema de CRUD completo (Create, Read, Update and Delete) e possui as seguintes funcionalidades:
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.
# 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
/
/users
/users/:id
users/data?...
Search params:
- name
- email
- age
- city
users/:id/data?...
Search params:
- name
- email
- age
- city
/users/:id