Introdução
A fim de o usuário administrador pudesse criar nosso sensores e que os cidadãos pudessem informar de situações para que outros fiquem alerta, foi desenvolvida um aplicação web. Esta seção é dedicada a parte back-end da aplicação e foi organizada em arquivos de código, que respectivamente são e fazem:
mongodb.go
Funcionalidades:
-
Conexão com o MongoDB:
ConectarAoMongo(): Estabelece uma conexão com o MongoDB utilizando credenciais armazenadas em um arquivo.env.
-
Operações de Banco de Dados:
ObterDoMongo(cliente *mongo.Client) []Sensor: Realiza uma consulta na coleção "sensores" e retorna uma lista de sensores.InserirNoMongo(cliente *mongo.Client, dados interface{}, colecao string) string: Insere um documento em uma coleção específica.
items.go
Estruturas de Dados:
Sensor: Estrutura que define os atributos de um sensor. Dividido em:
- Nome do sensor
- Tipo do sensor
- Latitude
- Longitude
Alerta: Estrutura que define os atributos de um alerta. Dividido em:
- Nome do alerta
- Tipo do sensor
- Latitude
- Longitude
api.go
Funcionalidades:
-
Configuração do Servidor HTTP:
- Configura o roteador Gin.
- Habilita o CORS para permitir solicitações de origens múltiplas.
-
Rotas da API:
GET /sensores: Retorna todos os sensores.POST /sensores: Cria um novo sensor.GET /alertas: Retorna todos os alertas.POST /alertas: Cria um novo alerta.
-
Funções de Manipulação de Solicitações HTTP:
criarSensor(c *gin.Context): Manipula a criação de um novo sensor.obterSensores(c *gin.Context): Manipula a obtenção de todos os sensores.criarAlerta(c *gin.Context): Manipula a criação de um novo alerta.obterAlertas(c *gin.Context): Manipula a obtenção de todos os alertas.
Esta documentação fornece uma visão geral das funcionalidades e estruturas de dados presentes nos arquivos, sendo útil para compreensão e manutenção do código-fonte.