Coder Social home page Coder Social logo

joaovictornsv / http-node-api Goto Github PK

View Code? Open in Web Editor NEW
49.0 1.0 4.0 76 KB

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.

License: MIT License

JavaScript 100.00%
nodejs http-server no-dependencies zero-dependency api crud crud-api javascript node

http-node-api's Introduction

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

http-node-api's People

Contributors

joaovictornsv avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.