Desafio de Estágio em Backend com Node.js: Desenvolvimento de API RESTful de Gerenciamento de produtos
Descrição do desafio: Você foi selecionado para participar de um desafio para uma vaga de estágio em desenvolvimento backend com Node.js, e ter conhecimento em TypeScript é um diferencial. Seu objetivo é desenvolver uma API RESTful para gerenciar produtos. Sua missão é implementar as seguintes funcionalidades:
- Criar um novo produto: Permitir que os usuários possam adicionar um novo produto fornecendo informações como nome, preço e quantidade em estoque.
- Listar todos os produtos: Permitir que os usuários possam obter uma lista de todos os produtos existentes.
- Obter detalhes de um produto específico: Permitir que os usuários possam obter os detalhes de um produto específico com base no seu ID.
- Atualizar informações de um produto: Permitir que os usuários possam atualizar as informações de um produto existente, incluindo nome, preço e quantidade em estoque.
- Excluir um produto: Permitir que os usuários possam excluir um produto existente com base no seu ID.
- Pesquisar produtos: Permitir que os usuários possam pesquisar produtos com base em critérios como nome, preço ou categoria.
O desafio consiste em seguir as etapas abaixo:
-
Crie uma estrutura de projeto adequada para a API, utilizando Node.js e JavaScript/TypeScript.
-
Implemente as rotas necessárias para realizar as operações básicas de CRUD (Create, Read, Update, Delete) para os produtos descrito anteriormente. As rotas devem seguir as melhores práticas de design RESTful.
-
Utilize um banco de dados de sua escolha (por exemplo, SQLite, MySQL, PostgreSQL) para persistir as tarefas. Certifique-se de realizar a conexão correta com o banco de dados.
-
Utilize boas práticas de codificação, como organização do código, nomenclatura adequada de variáveis e funções, uso de padrões de projeto, etc.
Diferencial:
-
Implemente a autenticação e autorização na API, utilizandoVocê foi contratado como estagiário em uma empresa de comércio eletrônico e sua tarefa é criar uma API RESTful para gerenciar produtos. Sua missão é implementar as seguintes funcionalidades:
-
Escreva testes unitários para as principais funcionalidades da API, utilizando uma biblioteca de testes, como Mocha ou Jest.
-
Implemente validações de entrada nos endpoints, garantindo que os dados enviados pelos clientes estejam corretos e completos.
-
Documente a API, descrevendo todas as rotas disponíveis, seus parâmetros, retornos e exemplos de uso. Utilize uma ferramenta como Swagger ou apidoc para gerar a documentação automaticamente.
-
Compartilhe seu código em um repositório Git e documente o processo de configuração e execução do projeto.
Este desafio permitirá avaliar suas habilidades em desenvolvimento backend com Node.js e TypeScript, incluindo o design e implementação de APIs RESTful, persistência de dados, autenticação e autorização, testes unitários e boas práticas de codificação.
Dica: Você pode utilizar frameworks populares como Express.js para auxiliar no desenvolvimento da API, além de bibliotecas como TypeORM ou Sequelize para a integração com o banco de dados.
Boa sorte e divirta-se com o desafio!