Um dos motivos de usarmos esse tipo de persistência é que tivemos o desafio de integrar back-end com back-end (Java e Node) uma API chamando a outra, onde deixamos nossos métodos genéricos o suficiente para chamar às duas APIs. Uma persistência Utilizando Node.js e MongoDB e outra com Java e MySQL para persistir os dados recebidos pela API.
Sobre • Documentação • Funcionalidades • Como executar • Tecnologias • Contribuidores • Licença
☕ Sistema de Gerenciamento - É uma API em Node.js que permite o Cadastro, Consulta, Inclusão e Exclusão de Alunos...
Projeto desenvolvido durante o Treinamento Java e Node oferecida pela Gama Academy em parceria com a Accenture.
Conceitos da linguagem JavaScript com Node.js, orientação a objetos, modulos, pacotes, funções: parametros, arrow functions, callbacks. JSON: Objeto JSON, desestruturação de Objetos. Promisses.
API de CRUD básica através de requisições HTTP diretas usando o Postman, mostrando domínio em RESTful APIs. Demonstrar a aplicação de uma persistência poliglota desse CRUD, utilizando tanto banco de dados relacionais como outros serviços (SOA).
-
Alunos podem se cadastrar na plataforma enviando:
- Nome, Telefone, Matricula
-
Manipular na plataforma:
- Acesso ao CRUD onde permite o gerenciamento
- A Criação de Novos Alunos, Cursos, Disciplinas, Notas
- Pesquisa e Leitura
- Edição
- Exclusão
- Acesso ao CRUD onde permite o gerenciamento
-
Validações:
- Utilizando JSON Schema
- Validação de Estrutura e Documentos JSON
- Definir atributos obrigatórios, tipagem, tamanho entre outros.
- Documentação clara, legível por humanos e por máquina
- Utilizando Ajv e Ajv-i18n
- Ajv implementa a especificação do esquema JSON
- Ajv-i18n Traz Mensagens de erro internacionalizadas para Ajv, disponibilizando acesso a diversos idiomas
- Utilizando Hapi/Boom
- HTTP o código correto e mais amigável no envio com um objeto estruturado e mensagem personalizada.
- Utilizando JSON Schema
-
JSON Web Token / JWT:
- Como uma forma de garantir a autenticação e autorização de rotas e usuários.
Este projeto está dividido em duas partes:
- Backend Node (Api-alunos)
- Backend Java (Neste outro repositorio)
💡 O Backend deve estar sendo executado para funcionar.
Antes de começar, você vai precisar ter instalado em sua máquina as seguintes ferramentas: Git, Node (Versão 14 LTS ou Superior), NVM (Node Version Manager for Windows), MongoDB(Community Edition), NoSQLBooster. Além disto é bom ter um editor para trabalhar com o código como VSCode. E para testar e consumir os Endpoints use Postman
Para executar a persistencia poliglota você obrigatoriamente deve ter o repositorio de Java. Acesse Neste outro repositorio.
E siga as instruções e pre-requisitos da documentação.
# Clone este repositório
$ git clone https://github.com/EdileneLopes/Api-alunos.git
# Acesse a pasta do projeto no terminal de sua preferencia bash/cmd
$ cd Api-alunos
# Um passo antes da execução instale as dependencias
$ npm install
# Execute
$ npm start
# O servidor inciará na porta:3000 - Acesse: http://localhost:3000
Acesse a Documentação com Swagger UI
http://localhost:3000/doc
Lembrando que as URLs precisam de um Authorization: Bearer Token válido (emitido no mesmo dia, com a assinatura HS256 utilizando a chave chavesecreta
e qualquer payload.
Antes de gerar o token você precisa acessar: http://localhost:3000/token
Com Metodo POST: Basic Auth e Passar (E-mail e senha) cadastrados no banco de dados em colletion usuarios
Para configurar qual será o repositório utilizado para persistir os dados recebidos pela API, utilize o header X-Persistence
na requisição, com um dos seguintes valores:
mongodb é o padrão
Precisa de um servidor de MongoDB rodando em localhost
na porta 27017.
O banco padrão para as operações é "aluno"
.
mysql
Tenta se conectar em uma API de REST rodando em localhost
na porta 8080.
A rota padrão para as operações é /alunos
.
As seguintes ferramentas foram usadas na construção do projeto:
Server (NodeJS)
-
Veja o arquivo package.json*
- Organização: Trello
- JSON Schema Generator: JSONschema.net
- API: Swagger UI
- Editor: Visual Studio Code, Eclipse
- Markdown: Markdown Emoji
- Teste de API: Postman
💜 Um super parabens 👏 para essa equipe nota 10 que fez tudo sair do papel :)
Edilene Lopes 👪 📚 |
Elson Santos ☕ 🎵 |
Rubens Almeida 👨🚀 👽 |
- Faça um fork do projeto.
- Crie uma nova branch com as suas alterações:
git checkout -b my-feature
- Salve as alterações e crie uma mensagem de commit contando o que você fez:
git commit -m "feature: My new feature"
- Envie as suas alterações:
git push origin my-feature
Este projeto esta sobe a licença MIT.