Skip to content

Latest commit

 

History

History
165 lines (136 loc) · 6.88 KB

File metadata and controls

165 lines (136 loc) · 6.88 KB

Desafio de Conceitos de Nodejs | GoStack

  • Nesse desafio, criamos uma aplicação para treinar os conceitos iniciais de NodeJS como rotas, middlewares, servidores, etc.
  • Esse é o 1º desafio de NodeJS voltado para o back-end do bootcamp GoStack da Rocketseat.
  • O Node é uma plataforma open-source que permite a execução da lingaugem javascript no lado do servidor/back-end.
    • Composto por:
    • v8: Interpretador de JavaScript, criado pela Google para executar o Chrome, tornando-o muito mais rápido e eficiente e que permite a execução de código javascript no back-end.
    • libuv: Biblioteca multiplataforma com o foco em I/O assíncrono melhorando ainda mais o desempenho do Node.
      • Também pode ser utildo por outras linguagens.
    • Com o objetivo de Melhorar o suporte ao processo de I/O das tecnologias de back-end.

____
____

ℹ️ Sobre

  • Essa será uma aplicação para armazenar repositórios do seu portfólio, que irá permitir:

    1. a criação,
    2. listagem,
    3. atualização
    4. Remoção dos repositórios
  • Além disso. permitirá que os repositórios possam receber "likes".

  • Estrutura

    1. Código:
      • É tentando manter o padrão que é ensinado na Rocketseat para o código mais limpo, organizado de facil entendimento com sua estrutura de pastas também.
        • Todo código foi feito com JavaScript.
    2. Express:
      • Toda criação, inicialização e funcionalidades do projeto foi feito usando o express.
    3. NodeJS
      • Foi cronstruído de forma simples uma aplicação para resgatar os conceitos de Node em conjunto com de uma API Rest.
      • Foi usado o yarn como gerenciador de pacotes.
  • Arquivo principal:

⁉️ Motivo

Com esse projeto foi posto em prática de vários conceitos iniciais de NodeJS, como:

  1. O uso do framework express:
    • Iniciação da aplicação/serivdor.
    • Auxilia na criação de rotas os métodos http: post, get, patch, put e delete.
  2. Configuração e iniciação do Package.json
  3. Prática no uso dos HTTP Codes e HTTP Methods
  4. Estrutura inicial de um servidor simples com express.
    • Uso de Json no express
    • Recarregando automaticamente o servidor quando houver alterações no código.
    • Esturtura incial de pastas
  5. Transferência de dados entre a requisição/rotas:
    • Uso dos parâmetros de rotas: params e query.
    • Uso do parâmetro de Headers
    • Uso do Request Body
  6. Uso do Insomnia
  7. Entedimento básico sobre Regras de negócio
    • Prática de lógica de programação
    • Prática e uso de métodos padrões javascript como:
      • find()
      • some()
      • filter()
      • reduce()
      • indexOf()
      • splice()
  8. Geração de ids com o uuid
  9. Criação e uso de Middlewares - Uso do método next() - Entendimento mais profundo sobre Request e Response

Funcionalidades

  1. Middleware: validadeId

    • Verifica se o id passado é válido.
  2. POST /repositories:

    • A rota deve receber title, url e techs dentro do corpo da requisição, sendo a URL o link para o github desse repositório. Ao cadastrar um novo projeto, ele deve ser armazenado dentro de um objeto no seguinte formato: { id: "uuid", title: 'Desafio Node.js', url: 'http://github.com/...', techs: ["Node.js", "..."], likes: 0 }; Certifique-se que o ID seja um UUID, e de sempre iniciar os likes como 0.
  3. GET /repositories:

    • Rota que lista todos os repositórios;
  4. PUT /repositories/:id:

    • A rota que altera apenas o title, a url e as techs do repositório que possua o id igual ao id presente nos parâmetros da rota;
  5. DELETE /repositories/:id:

    • A rota que deleta o repositório com o id presente nos parâmetros da rota;
  6. POST /repositories/:id/like:

    • A rota deve aumentar o número de likes do repositório específico escolhido através do id presente nos parâmetros da rota, a cada chamada dessa rota, o número de likes deve ser aumentado em 1;

🎨 Documentação

Nodejs Concepts Challange - Swagger


🌱 Requisitos Mínimos

  • NodeJS
  • Express
  • Yarn(ou NPM)

🚀 Principais Tecnologias Utilizadas

O projeto foi desenvolvido utilizando as seguintes tecnologias


📦 Como baixar e executar o projeto

  • Clonar o projeto:
     https://github.com/Aszurar/nodejs-concepts-challange-gostack.git
  • É necessário a instalação do yarn de acordo com seu sistema operacional, para isso veja como no site do Yarn
  • Instalação das dependências:
    • Execute o comando abaixo dentro da pasta do projeto
      yarn
  • Execução -
       yarn dev
  • Agora é necessário o uso do Insomnia para que teste cada requisição:
    1. Baixe e Instale o Insomnia:
    2. Importe no Insomnia o arquivo chamado teste-no-insomnia que está na pasta do projeto.
    3. Agora basta executar cada rota no Insomnia para testar o projeto

Desenvolvido por 🌟 Lucas de Lima Martins de Souza.