Olá! Apresentamos aqui o nosso projeto, o Mentorix. Trata-se de uma API seguindo o padrão Rest feita com Node.JS.
O objetivo deste projeto foi trabalhar em equipe para produzir uma API seguindo os padrões REST, para que mais tarde façamos integração com o Front-End que será feito em React.
O que é uma API REST? API (Application Programming Interface) é uma série de definições e protocolos usados para montar e integrar softwares de aplicação. Uma API seguindo o padrão REST (Representational State Transfer) indica que, quando o cliente/usuário requerir um recurso usando esse tipo de API, o servidor transferirá o recurso de uma maneira padronizada (.json).
- Criar o DB Diagram;
- 1.1. Criar banco de dados no mySQL Workbench, o nome será: database_mentorix;
-
Rodar SQL Script para criar as tabelas e relacionamentos no Banco de Dados no mySQL Workbench;
-
Modelar as entidades no código do projeto (criar models);
-
Estabelecer relações entre as entidades de acordo com DB Diagram;
-
Cria método dentro do service para interagir com o banco de dados e retornar a informação correta para o Controller;
-
Criar rota no Controller (Fazer os verbos, exemplo: route.get);
-
Dentro da rota do Controller chamar a função do service criada para obter/salvar/editar/deletar dados;
-
Retorna no Controller as informações obtidas;
-
Hospedagem da API no Render (Deploy);
-
Hospedagem do Banco de Dados no Google Cloud;
-
Verificar com o Insomnia se a rota está funcionando corretamente.
Node.js // MySQL // Postman
Bibliotecas: Bcrypt, express, mysql2 e sequelize
Para fazer o deploy desse projeto rode
Clone o projeto
git clone https://github.com/devtaw/api-rest-mentorix.git
git clone git@github.com:devtaw/api-rest-mentorix.git
cd api-rest-mentorix
code .
npm install
npm run start
//ou
npm start
Certifique-se de ter o Postman ou Insomnia instalado em seu sistema.
A rota post cria area atuacao
{
"id": 13,
"nome": "Desenvolvimento Web",
"descricaoArea": "criação de sites e aplicativos para a internet usando linguagens como HTML, CSS e JavaScript",
"fotoAreaAtuacao": "https://th.bing.com/th/id/R.10a6b3802667bb8ca5177c88a880f3dc?rik=i3y9whMAtz1SSw&pid=ImgRaw&r=0 ",
"createdAt": "2023-09-20",
"updatedAt": "2023-09-20"
}
{
"Sucesso": " area agendamentos" criado com sucesso!"
}
A rota get busca todos as areas atuacao cadastradas
{
"id": 14,
"nome": "Engenharia",
"descricaoArea": "Aplica princípios científicos e matemáticos para projetar, construir e melhorar sistemas, estruturas e dispositivos",
"fotoAreaAtuacao": "https://www.univille.edu.br/community/novoportal/VirtualDisk.html/downloadDirect/1462802/FA7-engenharia-mecanica-960x750.jpg",
"createdAt": "2023-09-20",
"updatedAt": "2023-09-20"
}
- A rota get id busca o areas atuacao pelo id informado*
https://mentorix.onrender.com/areas-atuacao/13
{
"id": 13,
"nome": "Desenvolvimento Web",
"descricaoArea": "criação de sites e aplicativos para a internet usando linguagens como HTML, CSS e JavaScript",
"fotoAreaAtuacao": "https://th.bing.com/th/id/R.10a6b3802667bb8ca5177c88a880f3dc?rik=i3y9whMAtz1SSw&pid=ImgRaw&r=0 ",
"createdAt": "2023-09-20",
"updatedAt": "2023-09-20"
}
A rota DELETE id deleta a areas-atuacao pelo id informado
https://mentorix.onrender.com/areas-atuacao/13
{
"id": 13,
"nome": "Desenvolvimento Web",
"descricaoArea": "criação de sites e aplicativos para a internet usando linguagens como HTML, CSS e JavaScript",
"fotoAreaAtuacao": "https://th.bing.com/th/id/R.10a6b3802667bb8ca5177c88a880f3dc?rik=i3y9whMAtz1SSw&pid=ImgRaw&r=0 ",
"createdAt": "2023-09-20",
"updatedAt": "2023-09-20"
}
A rota post cria agendamentos
{
"id": 10
"campoMensagem": "quero agendar",
"aceite": true,
"mentor_id":1,
}
{
"Sucesso": "agendamentos" criado com sucesso!"
}
A rota get busca todos as agendamentos" cadastradas
{
"id": 10
"campoMensagem": "quero agendar",
"aceite": true,
"mentor_id":1,
}
- A rota get id busca o Agendamentos pelo id informado
https://mentorix.onrender.com//agendamentos/10
{
"id": 10
"campoMensagem": "quero agendar",
"aceite": true,
"mentor_id":1,
}
A rota DELETE id deleta a agendamentos" pelo id informado
{
"id": 10
"campoMensagem": "quero agendar",
"aceite": true,
"mentor_id":1,
}
A rota PUT id atualiza agendamentos" pelo id informado
{
"id": 10
"campoMensagem": "quero agendar",
"aceite": true,
"mentor_id":1,
}
{
"message": "Usuário não encontrado""
}
{
"message": "Email é obrigatório"."
}
{
"message": "Senha é obrigatória""
}
{
"message": "Telefone é obrigatório""
}
A rota cria especialidades
{
"id": 1,
"nome": "Segurança da Informação",
"descricao": "area que se concentra em garantir a segurança e proteção dos sistemas de informação",
"foto": "https://i.ytimg.com/vi/RnsYE2eZqkA/maxresdefault.jpg",
"createdAt": "2023-09-21",
"updatedAt": "2023-09-21"
}
{
"id": 1,
"nome": "Segurança da Informação",
"descricao": "area que se concentra em garantir a segurança e proteção dos sistemas de informação",
"foto": "https://i.ytimg.com/vi/RnsYE2eZqkA/maxresdefault.jpg",
"createdAt": "2023-09-21",
"updatedAt": "2023-09-21"
},
https://mentorix.onrender.com/especialidades/1
{
"id": 1,
"nome": "Segurança da Informação",
"descricao": "area que se concentra em garantir a segurança e proteção dos sistemas de informação",
"foto": "https://i.ytimg.com/vi/RnsYE2eZqkA/maxresdefault.jpg",
"createdAt": "2023-09-21",
"updatedAt": "2023-09-21"
}
{
"id": 3,
"nome": "Segurança da Informação TESTE",
"descricao": "area que se concentra em garantir a segurança e proteção dos sistemas de informação",
"foto": "https://i.ytimg.com/vi/RnsYE2eZqkA/maxresdefault.jpg",
"createdAt": "2023-09-21",
"updatedAt": "2023-09-22"
}
Pesquisar por ID https://mentorix.onrender.com/especialidades/3
{
"id": 3,
"nome": "Segurança da Informação TESTE",
"descricao": "area que se concentra em garantir a segurança e proteção dos sistemas de informação",
"foto": "https://i.ytimg.com/vi/RnsYE2eZqkA/maxresdefault.jpg",
"createdAt": "2023-09-21",
"updatedAt": "2023-09-22"
}
Depois do Delete, pesquisar novamente por id .
Tratamento de erro
{
"messagem": "Especialidade não encontrada"
}
A rota post cria area mentor
{
"id": 7,
"nome": "Gerson Josias",
"dataNascimento": "16/06/1986",
"telefone": "041988887777",
"nivelExperiencia": "senior",
"experienciaProfissional": "inserir texto de experiencia profissional",
"createdAt": "2023-09-20",
"updatedAt": "2023-09-20"
}
{
"Sucesso": "Mentor criado com sucesso!"
}
A rota get busca todos os mentores
{
"id": 7,
"nome": "Gerson Josias",
"dataNascimento": "16/06/1986",
"telefone": "041988887777",
"nivelExperiencia": "senior",
"experienciaProfissional": "inserir texto de experiencia profissional",
"createdAt": "2023-09-20",
"updatedAt": "2023-09-20"
}
- A rota get id busca o mentores pelo id informado*
https://mentorix.onrender.com/mentores/7
{
"id": 7,
"nome": "Gerson Josias",
"dataNascimento": "16/06/1986",
"telefone": "041988887777",
"nivelExperiencia": "senior",
"experienciaProfissional": "inserir texto de experiencia profissional",
"createdAt": "2023-09-20",
"updatedAt": "2023-09-20"
}
A rota DELETE id deleta o mentores pelo id informado
https://mentorix.onrender.com/mentores/7
{
"id": 7,
"nome": "Gerson Josias",
"dataNascimento": "16/06/1986",
"telefone": "041988887777",
"nivelExperiencia": "senior",
"experienciaProfissional": "inserir texto de experiencia profissional",
"createdAt": "2023-09-20",
"updatedAt": "2023-09-20"
}
A rota PUT id atualiza mentores pelo id informado
{
"id": 7,
"nome": "Adriano Rodrigues",
"dataNascimento": "23/09/1998",
"telefone": "041988887777",
"nivelExperiencia": "pleno",
"experienciaProfissional": "inserir texto de experiencia profissional",
"createdAt": "2023-09-20",
"updatedAt": "2023-09-20"
}
A rota post cria mentores-especialidade
{
"id": 13,
"mentor_id": 5,
"especialidade_id": 8,
"createdAt": "2023-09-20",
"updatedAt": "2023-09-20"
}
{
"Sucesso": " mentor-especialidade criado com sucesso!"
}
A rota get busca todos as mentores-especialidades
{
"id": 13,
"mentor_id": 5,
"especialidade_id": 8,
"createdAt": "2023-09-20",
"updatedAt": "2023-09-20"
}
- A rota get id busca a especialidade do mentor pelo id informado*
{
"id": 13,
"mentor_id": 5,
"especialidade_id": 8,
"createdAt": "2023-09-20",
"updatedAt": "2023-09-20"
}
A rota DELETE id deleta a especialidade do mentores- especialidade pelo id informado
https://mentorix.onrender.com/mentor-especialidade/13
{
"id": 13,
"mentor_id": 5,
"especialidade_id": 8,
"createdAt": "2023-09-20",
"updatedAt": "2023-09-20"
}
r A rota PUT id atualiza mentor-especialidade pelo id informado
{
"id": 13,
"mentor_id": 7,
"especialidade_id": 9,
"createdAt": "2023-09-20",
"updatedAt": "2023-09-20"
}