Skip to content

Latest commit

 

History

History
227 lines (157 loc) · 4.52 KB

README.md

File metadata and controls

227 lines (157 loc) · 4.52 KB

Desafio Driva

Desafio para vaga de estágio na Driva Tecnologia

Author Languages


Ferramentas:

Utilizado para melhores práticas de tipagem de código e prevenção de bugs por conta da natureza selvagem do Javascript

Utilizado para padronizar a estilização do código

Utilizado para adicionar mais funcionalidade ao ESLint

Utilizado para dar restart no servidor quando arquivos forem modificados

Configura path mapping no typescript

Framework para rodar um server HTTP no Nodejs

Biblioteca para fazer requisições HTTP assíncronas

Middleware para configurar headers CORS no Express

Configura path mapping no node

Organização do código:

O código fonte fica dentro da pasta "src", os outros arquivos são para configuração.

Primeiro, o arquivo principal: aqui fica o código que roda o servidor do Express e configura as rotas.

src/server.ts

Esse arquivo contém apenas algum setup para o Express:

src/server-config.ts

Esse diretório contém os erros customizados que serão utilizados dentro da aplicação:

src/errors

Aqui ficam os controladores com os requisitos do desafio:

src/controllers

Adicionalmente, os controladores utilizam algumas interfaces para desacoplar um pouco o código:

src/controllers/interfaces

Os adaptadores de interfaces da aplicação ficam aqui:

src/adapters

Funções helper de qualquer natureza também têm seu próprio diretório:

src/helpers

O código de infraestrutura também está separado:

src/infra

E por último, os modelos de dados:

src/models

Instalação:

Para rodar o projeto é necessário ter o Node.js versão LTS instalado na máquina.
Para clonar via SSH é só usar o comando:

git clone [email protected]:Jackzinho/desafio-driva.git

ou via HTTPS:

git clone https://github.com/Jackzinho/desafio-driva.git

Após clonar o repositório, é preciso instalar as dependências:

npm install

Iniciando:

Os comandos a seguir podem ser executados usando Yarn ou npm.
Comando principal para iniciar o servidor:

npm start

Comando para iniciar o servidor em modo de desenvolvimento:

npm run dev

Comando para fazer a build do projeto:

npm run build

Comando para utilizar ESLint no projeto e consertar erros de estilo:

npm run lint

Rotas:

Hello World

Uma rota que retorna uma resposta amigável :)

  • URL

    /hello

  • Method:

    GET

  • Success Response:

    200 Ok - text/plain
    "World"
  • Sample Call:

    curl http://localhost:3333/hello
    

Soma

Uma rota que retorna o montante da soma de um vetor de números

  • URL

    /soma

  • Method:

    POST

  • Body

    {
      "numbers": [2, 2]
    }
  • Success Response:

    200 Ok - application/json
    {
      "result": 4
    }
  • Sample Call:

    curl -X POST http://localhost:3333/soma
     -H 'Content-Type: application/json'
     -d '{ "numbers": [2, 5, 9] }'
    

Star Wars

Uma rota que retorna o nome dos filmes de Star Wars

  • URL

    /starwars/films

  • Method:

    GET

  • Success Response:

    200 Ok - application/json
    [
      {
          "title": "Star Wars: The Phantom Menace",
          "episodeNumber": 1
      },
    ]
  • Sample Call:

    curl http://localhost:3333/starwars/films