Raul743 / testMirante_product

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Mirantes-challenge

This repository was created to make a Product challenge, this test require make a simple api to list products, create products, update products, get one products and remove products.


Este é uma solução de uma API em Node.js & Typescript!

🚀 Tecnologias & Ferramentas utilizadas


Princípios aplicados

  • Single Responsibility Principle (SRP)
  • Open Closed Principle (OCP)
  • Liskov Substitution Principle (LSP)
  • Interface Segregation Principle (ISP)
  • Dependency Inversion Principle (DIP)

Metodologia aplicados

  • Domain (D)
  • Driven (D)
  • Design (D)

Metodologias e Designs

  • Clean Architecture
  • Use Cases

Bibliotecas

  • NPM
  • Typescript
  • Git
  • Express
  • Eslint
  • Jest
  • Mongo
  • Mongoose

Features do Node

  • API Rest com Express
  • CORS

Features do Git

  • Alias
  • Branch
  • Tag
  • Merge

Features do Typescript

  • POO
  • Interface

Recursos disponíveis para acesso via API ou endpoints(URI):

  • baseURL - localhost:3000/v1/
  • products - /products
Método Descrição
POST /products
GET /products/{id}
GET /products
PUT /products/{id}
DELETE /products/{id}

Um exemplo do funcionamento das rotas.

Dependências | Instalando o projeto

Normal

  • Rode um yarn | npm install para baixar todas as dependências

Via DOCKER

  1. docker-compose build/sudo docker-compose build - no windows/Linux
  2. docker-compose up -d/sudo docker-compose up -d - Para rodar a o container em backGround
  3. docker-compose up/docker-compose up - Para rodar a aplicação também
  4. Rode um docker ps/sudo docker ps - Para verificar se os containers estão rodando

Métodos

Requisições para a API devem seguir os padrões:

Método Descrição
GET Retorna informações de um ou mais registros.
POST Utilizado para criar um novo registro.
PUT Utilizado para atualizar um registro.
DELETE Utilizado para remover um registro.

Rode o Projeto

  • Para executar, basta:
Comando Descrição
yarn test ou npm run test Rodando os testes da Aplicação
yarn dev ou npm run dev Rodando a aplicação em geral
yarn test Rodando os testes da Aplicação
yarn lint Rodando os ajusts na Aplicação

Respostas

Código Descrição
200 Requisição executada com sucesso (success).
201 Registro Criado com sucesso.
400 Erros de validação ou os campos informados não existem no sistema.
404 Valor não encontrado
500 Erro interno do servidor.

Padrão de Retorno dos dados

  • Response 201 (application/json)

    • Body

        {
          "success": true/false,
          "message": String,
          "data": Object/String
        }
      

Caso a requisição não conter nenhuma resposta ou falhar o retorno será:

  • Response 400(Aplication/json)

      {
        "success": false,
        "data": "Invalid User"
      }
    

Desenvolvido por: Raul Laurindo Inácio

About


Languages

Language:TypeScript 99.1%Language:JavaScript 0.7%Language:Dockerfile 0.2%