Este projeto contém uma API desenvolvida em Node.js com a tecnologia Microsoft Azure Functions 3.0 para o Jogo Sério I Blue It. Esta API serve para o envio das informações geradas dentro do jogo para um banco de dados facilitando a sua consulta dentro de uma aplicação web, o I Blue It Analytics (disponível neste repositório). Este projeto é parte de meu Trabalho de Conclusão de Curso (que está disponível em )
Logo abaixo está passo-a-passo para caso queira baixar e executar em sua máquina.
A documentação da API está descrita na wiki deste repositório.
Este é a API base que se comunica com o Jogo Sério I Blue It. Alterações foram realizadas dentro do jogo sério para o envio das informações. O repositório da última versão do jogo está disponível neste link.
Esta API também serve para suprir a aplicação web desenvolvida para visualizar os dados gerados dentro do jogo sério e possibilitar algumas operações com as informações. Para mais informações sobre esta aplicação, visite o seu repositório.
A tecnologia serverless Microsoft Azure Functions, ou seja, não necessita de um servidor exclusivo para execução. Isso permite que as rotas da API sejam tratadas como funções que são alocadas dinamicamente nos servidores da Microsoft e são executadas quando ocorre uma chamada de evento.
- Node.js 12.16.1
- Microsoft Azure Functions 3.0
- MongoDB Atlas
- Mongoose 5.9.2
- validatorjs 3.18.1
- bcryptjs 2.4.3
- mongo-db-memoryserver 6.9.6
- Jest 26.6.3
- ESLinter (AirBnB)
Esta API utiliza necessita de algumas configurações. Certifique-se de que você possui um arquivo para guardar as variáveis de ambiente da aplicação (local.settings.json). Este arquivo deve conter o seguinte valor para :
[...]
"Values":{
[...],
"MONGO_CONNECTION": [SEU ENDEREÇO DE CONEXÃO PARA UM BANCO MONGODB]
},
[...]
Primeiro, vamos preparar o seu ambiente para que consiga simular a chamada de funções. Para informações mais detalhadas acesse a documentação da Microsoft.
- Instale o Visual Studio Code;
- Instale a Extensão Azure Functions para o Visual Studio Code (VS Code);
- Clone este repositório para uma pasta de sua máquina;
- Abra o VSCode na plasta com o código clonado;
- Acesse o menu da Extensão Azure Functions na barra lateral esquerda do VS Code;
- Localize a pasta "Local Project" para certificar-se que a extensão encontrou as funções;
- Aperte a tecla F5 para rodar o projeto localmente.
Ao rodar a aplicação você verá no terminal do VS Code as rotas geradas (localhost) que podem ser utilizadas para enviar/buscar as informações.
As informações para caso queira implantar as funções no ambiente da Microsoft estão disponíveis na documentação da própria Microsoft sobre esta plataforma.
##Testes
O projeto está configurado para utilizar a biblioteca de testes Jest. Para rodar os testes unitários basta executar o comando npm run test, que serão executados os testes unitários existentes na pasta test/.
Alguns enpoints desta API necessitam de uma chave de acesso, chamada de Game Token. Esta chave precisa ser enviada através do header "game-token". Esta chave é gerada a partir de uma conta de acesso do tipo Administrator.Para criar uma conta de acesso, verifique o endpoint (Conta -> Cadastrar uma Conta de Acesso), e para gerar uma chave de acesso, acesse o endpoint (Chave de Acesso -> Gerar Chave de Acesso).
A seguir, encontra-se uma tabela com as rotas desenvolvidas e qual é a sua função correspondente (pasta deste repositório)
METHOD | Descrição | Azure Function | |
Paciente | |||
POST | Cadastrar um Paciente | SendPacient | |
POST | Excluir os dados de um Paciente | DeletePacient | |
POST | Buscar os dados de um Paciente | GetPacient | |
DELETE | Buscar dados de Pacientes | GetPacients | |
Resumo de Plataforma | |||
POST | Cadastrar um Resumo de Plataforma | SendPlataformOverview | |
GET | Buscar Resumos de Plataforma | GetPlataformOverview | |
GET | Buscar Resumos de Plataforma [Paciente] | GetPacientPlataformOverview | |
Resumo de Minigame | |||
POST | Cadastrar um Resumo de Minigame | SendMinigameOverview | |
GET | Buscar Resumos de Minigame | GetMinigameOverview | |
GET | Buscar Resumos de Minigame [Paciente] | GetPacientMinigameOverview | |
Calibração | |||
POST | Cadastrar um Resumo de Calibração | SendCalibrationOverview | |
GET | Buscar Resumos de Calibração | GetCalibrationOverview | |
GET | Buscar Resumos de Calibração [Paciente] | GetPacientCalibrationOverview | |
Conta de Acesso | |||
POST | Criar uma Conta de Acesso | CreateAccount | |
POST | Autenticar | LoginAccount | |
GET | Buscar Conta de Paciente | GetPacientAccount | |
DELETE | Excluir Conta de Acesso [Administrador] | DeleteAccount | |
Chave de Acesso | |||
POST | Gerar uma Chave de Acesso | CreateGameToken | |
Dados Respiratórios | |||
GET | Buscar Dados Respiratórios | GetFlowDataDevice |
Acessar a página de documentação criada em Postman -> acesse aqui
Para saber mais sobre a história e dificuldades deste projeto