Neste repositório encontram-se as resoluções para o desafio proposto pela empresa Driva.
Foram disponibilzadas pela empresa, através de seu CTO - Wagner Agostinho, duas opções de desafios, logo, neste repositório, encontram-se as soluções para a 2º opção.
Na opção 02, foi pedido para fazer uma API Rest utilizando Javascript(Node.JS) ou Python que atende-se os seguintes requisitos:
Checklist
- Uma rota /hello do tipo GET que retorne a mensagem "World";
- Uma rota /soma do tipo POST que recebe um JSON com dois números inteiros e retorna a soma deles;
- Uma rota /starwars/films do tipo GET que retorna o nome dos filmes da franquia Star Wars (para fazer essa etapa você precisa usar a API aberta https://swapi.dev/, nela você pode fazer uma requisição para o endereço https://swapi.dev/api/films que retorna a informação de todos os filmes da franquia, incluindo o nome)
Decidi realizar o desafio utilizando o Node.JS. A opção pela ferramenta foi simplesmente para diversificar a linguagem da qual adotei para a 1º opção de desafio.
O Node, assim como o Python, nos oferecem diversas ferramentas que otimizam o nosso desenvolvimento, decidi utilizar as mais consolidadas para não ter nenhum susto problema. Para a requisição da API, utilizei o axios, por questões de desempenho e compatibilidades que percebi ao longo de atividades semelhantes. Inclusive, segue um artigo interessante que trata um pouco sobre Fetch VS Axios https://medium.com/@thejasonfile/fetch-vs-axios-js-for-making-http-requests-2b261cdd3af5.
A realização das tarefas foi de forma bem intuitiva, um GET pra lá, e mensagem aparecendo, um POST pra cá e soma realizada. Já na fase 3, fiquei um pouco confuso pois não tinha visto claramente onde estava a chave que eu queria para contemplar a resposta, mas dei aquela espertada e pronto. Fiz um map no array retornado e voila!, lista de filmes carregada com sucesso.🤓
- Node - Software de código aberto, multiplataforma, baseado no interpretador V8 do Google e que permite a execução de códigos JavaScript fora de um navegador web.
- Express - Framework para Node.js que fornece recursos mínimos para construção de servidores web.
- Body-parser - Middleware de análise do body das solicitações recebidas do Node.js.
- Nodemon - Ferramenta que reinicia automaticamente o aplicativo quando mudanças de arquivo no diretório são detectadas.
- Axios - Cliente HTTP baseado em promessa para o navegador e node.js.
- Usei o GitHub para o controle de versão.
- Desenvolvedor Web - Desenvolvimento - Erick Marinho
- Queria deixar aqui meu agradecimento especial ao Wagner Agostinho CTO | Driva - pela oportunidade oferecida em realizar este desafio, que com certeza, ajudou-me a desafiar-me e principalmente em aprender um pouco mais. 🤓
⌨️ com ❤️ Erick Marinho