API REST BACK END - elvisfernandess/api GitHub Wiki

PROBLEMA DA PESQUISA

Projetar uma interface para monitoramento de dados de temperatura de eletrodomésticos (Geladeira / Freezer) utilizando uma API Back End REST, cuja tecnologia desenvolvida é baseada em arquitetura Spring Boot, utilizando a modelagem de dados persistidos, de baixo custo, viabilidade técnica e econômica, de alta confiabilidade por meio de uma tecnologia cujos dados possam ser armazenados em tempo real.

JUSTIFICATIVA

Utilizar uma tecnologia que possa armazenar os dados coletados para monitoramento de temperatura em Geladeiras/Freezer’s/Fornos, visando a redução de gastos com energia elétrica, custos, perdas e, manutenção corretiva e preventiva.

RESUMO

Este projeto é composto pelo desenvolvimento de uma API Rest Back-End para monitoramento de temperatura. As APIs são um conjunto de padrões que fazem parte de uma interface e que permitem a criação de plataformas de maneira mais simples e prática para desenvolvedores. A partir de APIs é possível criar softwares, aplicativos, programas e plataformas diversas. O levantamento das características e particularidades das tecnologias utilizadas serão apresentadas com objetivo de validar o protótipo.

Palavras-chave: API Rest. Back-End. Spring Boot. JAVA. Software. Postgresql. Dados Persistidos.

INTRODUÇÃO

A proposta desse Projeto é o desenvolvimento de uma API Back End REST, utilizando tecnologia desenvolvida em ​Spring Boot​, utilizando a modelagem de dados persistidos no formato JSON.

API REST é uma interface de programação de aplicações que está em conformidade com as restrições do estilo de arquitetura REST, permitindo a interação com serviços web RESTful, ou seja, API RESTful é uma interface que fornece dados em um formato padronizado baseado em requisições HTTP, ela fica rodando no servidor até que aconteça uma requisição.

As APIs Restful aumentam o desempenho para situações de concorrência, ou seja, quando muitas requisições estão sendo feitas ao mesmo tempo.

Métodos API Rest

GET: A requisição é um pedido de dados para a API. A API vai buscar os dados solicitados em algum banco e, provavelmente, vai retornar em formato JSON (formato de notação de objeto JavaScript);

POST: Tipo de requisição utilizada para criar um recurso em uma determinada API. São chamados de recursos o objeto que está sendo tratado naquela API;

PUT: Requisição utilizada para atualizar o recurso indicado com alguma informação.

DELETE: Requisição para excluir um dado.

Essas métodos (GET, POST, PUT e DELETE) são acessadas por meio de Endpoints, que são as URLs nas quais são feitas as requisições. Cada requisição aos endpoints é composta por:

  • O método HTTP;
  • Um cabeçalho requisição, que pode conter informações como dados de autenticação da API, dados de origem da requisição e formato do retorno.

Spring boot

O Spring Boot é um framework Java open source que tem como objetivo facilitar esse processo em aplicações Java. Conseqüentemente, ele traz mais agilidade para o processo de desenvolvimento, uma vez que os desenvolvedores conseguem reduzir o tempo gasto com as configurações iniciais.

Framework: é um conjunto de códigos genéricos capaz de unir trechos de um projeto de desenvolvimento

Linguagem JAVA

O Java é uma linguagem de programação Orientada a Objetos e é uma das linguagens mais utilizadas pelas empresas na atualidade no desenvolvimento de aplicações WEB e Mobile. O Java foi criado em 1995 na empresa Sun Microsystem por uma equipe chefiada por James Gosling , conhecido como o pai do Java.

Aplicações JAVA

  • Linguagem flexível
  • Possuir uma grande variedade de bibliotecas API (interfaces de programação);
  • Desenvolvimento IoT;
  • Multiplataforma, ou seja, o mesmo aplicativo pode rodar perfeitamente em Windows, Linux, Android e iOS.

PostgresSQL

O PostgreSQL é um sistema gerenciador de banco de dados objeto relacional (SGBDOR);

SGBDOR: Permite a representação de uma grande variedade de problemas usando um pequeno conjunto de conceitos simples. As regras e rotinas para tratamento da persistência dos dados podem ser criadas no próprio banco de dados relacional.

Vantagens: São extremamente confiáveis e mais eficientes, se comparados à maioria dos SGBDs orientados a objetos disponíveis no mercado.

Aplicações PostgresSQL

  • Heranças de tabelas;
  • Integridade de dados referencial via chaves estrangeiras;
  • Tipos de dados definidos pelo usuário;
  • Controle de concorrência multiversionado;
  • Recuperação de informações point-in-time;
  • Replicação assíncrona de dados;
  • Subconsultas;
  • Transações aninhadas via savepoints;
  • Controle de acesso aos dados; e
  • Tablespaces.

Dados Persistidos

A persistência dos dados tem o objetivo de garantir que as informações serão armazenadas em um meio em que possam ser recuperadas de forma consistente. Ou seja, são registros permanentes e que não são perdidos quando há o encerramento da sessão. Como a persistência requer a gravação das informações em um meio não volátil, é preciso armazená-las em um Sistema Gerenciador de Banco de Dados — SGBD. Esse armazenamento pode ser feito por meio de comandos SQL, que permitem a manipulação dos registros.

Tarefas

  • Análise Teórica Data de entrega: 03/11/2021 STATUS:Concluída

  • Preparação do ambiente de desenvolvimento Data de entrega: 17/11/202 STATUS:Á fazer

  • Criação do projeto e Importar projeto Maven Data de entrega:17/11/2021 STATUS:Á fazer

  • Criar pacote Models Data de entrega: 24/11/2021 STATUS:Á fazer

  • Criação das classes Java dentro do pacote.models Data de entrega: 01/12/2021 STATUS**:Á fazer

  • Configuração do banco de dados no arquivo application.properties Data de entrega: 08/12/2021 STATUS: Á fazer

  • Criação do banco de dados local Data de entrega: 15/12/2021 STATUS: Á fazer

  • Teste de conexão da aplicação com o banco de dados Data de entrega: 22/12/2021 STATUS: Á fazer

  • Adicionar valores ao banco de dados Data de entrega: 29/12/2021 STATUS: Á fazer

  • Criar Repositório para as classes Java Data de entrega: 05/01/2022 STATUS: Á fazer

  • Criar Métodos com persistência para banco de dados Data de entrega: 12/01/2022 STATUS: Á fazer

  • Testando a aplicação utilizando Postman Data de entrega: 19/01/2022 STATUS: Á fazer

  • Teste de Acessar a API Data de entrega: 26/01/2022 STATUS: Á fazer

  • Documentação do Relatório Data de entrega: 02/02/2022 STATUS: Á fazer

  • Revisão do Relatório Data de entrega: 09/02/2022 STATUS: Á fazer

  • Apresentação do Projeto Data de entrega: 16/02/2022 STATUS: Á fazer