Skip to main content

Documentação da API do projeto

Introdução

  API (Application Programming Interface) refere-se a um conjunto de funções e comandos padronizados que permitem a comunicação e integração entre diferentes sistemas de maneira facilitada através da programação. Em paráfrase, com APIs, é possível receber e enviar dados entre sistemas sem a necessidade de criar um meio de comunicação entre estes a partir do zero.

  Como forma de atender aos interesses da Atvos, empresa parceira do projeto, a equipe SugarZ3ro desenvolveu uma API integrada à aplicação web existente na solução para que seja possível manipular com mais facilidade os dados referentes ao nível de sujeira dos canos de reboilers. Desse modo, a empresa poderá, de maneira prática, obter tais dados e exibí-los em forma de gráficos em sua plataforma interna própria para tal.

  A API do projeto foi construída em Python com base no micro-framework Flask. Ela faz parte do backend da aplicação web do sistema e interage com o frontend desta, com o banco de dados e com a inteligência artificial utilizada para analisar os canos dos reboilers.

Documentação das rotas

  Cada uma das rotas que compõem a API foi documentada com uso do Postman, software que facilita o processo de criação, testagem e documentação de APIs. A documentação da API pode ser acessada clicando aqui.

Testagem das rotas

  Cada uma das rotas que compõem a API também foi testada com uso do Postman. Foram realizados dois tipos de testes: manuais e automáticos.

Testes manuais

  Os testes manuais consistiram na criação manual de requisições para cada uma das rotas existentes na API. Cada uma das requisições foi criada e executada junto à execução local do servidor em Flask com uma taxa de 100% de sucesso (nenhuma das requisições falhou).

  A seguir, há uma sequência de figuras com capturas de tela da testagem das rotas, mostrando qual rota foi testada, o corpo e parâmetros/argumentos passados para as requisições e o que foi retornado por elas, conforme descrito na documentação das rotas.

Figura 1 - Teste de método [GET] bem sucedido na rota /post_reboiler_id

Teste bem sucedido da rota /post_reboiler_id

Fonte:Elaborado pela equipe SugarZ3ro


Figura 2 - Teste de método [POST] bem sucedido na rota /post_reboiler_id

Teste bem sucedido da rota /post_reboiler_id

Fonte:Elaborado pela equipe SugarZ3ro


Figura 3 - Teste de método [GET] bem sucedido na rota /pipes

Teste bem sucedido da rota /pipes

Fonte:Elaborado pela equipe SugarZ3ro


Figura 4 - Teste de método [POST] bem sucedido na rota /pipes

Teste bem sucedido da rota /pipes

Fonte:Elaborado pela equipe SugarZ3ro


Figura 5 - Teste de método [GET] bem sucedido na rota /pipes/[pipe_id]

Teste bem sucedido da rota /pipes/[pipe_id]

Fonte:Elaborado pela equipe SugarZ3ro


Figura 6 - Teste de método [POST] bem sucedido na rota /pipes/[pipe_id]

Teste bem sucedido da rota /pipes/[pipe_id]

Fonte:Elaborado pela equipe SugarZ3ro


Figura 7 - Teste de método [DELETE] bem sucedido na rota /pipes/[pipe_id]

Teste bem sucedido da rota /pipes/[pipe_id]

Fonte:Elaborado pela equipe SugarZ3ro


Figura 8 - Teste de método [POST] bem sucedido na rota /pipes/simulate

Teste bem sucedido da rota /pipes/simulate

Fonte:Elaborado pela equipe SugarZ3ro

Testes automáticos

  Os testes automáticos são testes criados automaticamente por uma funcionalidade de IA existente no Postman. Esses testes são criados com base na funcionalidade esperada de cada rota e levam em conta a testagem de aspectos mais específicos das requisições que são feitas para cada uma delas.

  A seguir, há uma sequência de figuras que apresenta diferentes tipos de testes automáticos realizados com o Postman para cada uma das rotas existentes na API do projeto.

Figura 9 - Testes automáticos da rota /post_reboiler_id

Testes automáticos da rota /post_reboiler_id

Fonte:Elaborado pela equipe SugarZ3ro


Figura 10 - Testes automáticos da rota /pipes

Testes automáticos da rota /pipes/

Fonte:Elaborado pela equipe SugarZ3ro


Figura 11 - Testes automáticos da rota /pipes/[pipe_id]

Testes automáticos da rota /pipes/[pipe_id]

Fonte:Elaborado pela equipe SugarZ3ro


Figura 12 - Testes automáticos da rota /pipes/simulate

Testes automáticos da rota /pipes/simulate

Fonte:Elaborado pela equipe SugarZ3ro

  Todos os testes automáticos foram bem sucedidos, com exceção dos que consistiram em verificar se as respostas de determinadas requisições iriam retornar o valor da chave datetime como um objeto datetime, o que não ocorre na prática. A API foi construída de modo a retornar os dados requisitados por meio do formato json, o que faz com que as datas (incluindo ano, mês, dia, hora, minutos e segundos) de registros de canos sejam salvas como string e não como um objeto específico do tipo datetime. Contudo, isso não afeta a funcionalidade da API ou o uso dela para futura criação de gráficos através de uma plataforma interna da empresa parceira.