Integração de Sistemas - API Rest
Tags: api, programming, productivity, development
Published: 2024-03-11 18:54:42

  Ao se analisar questões de processos e comunicação dentro de uma empresa, é possível comprovar que soluções de Engenharia de Software são muito importantes para otimizá-las. Por exemplo, a necessidade de realizar conexões entre sistemas de setores diversos, desenvolvidos de forma independente e com diferentes tecnologias e estruturas, a fim de estabelecer uma melhor troca de informações de forma que traga uma clareza maior aos processos referentes. Nesse contexto, como os sistemas já estão desenvolvidos e consistentes, a junção deles em um só torna o sistema integrado mais produtivo, seguro, facilita o fluxo de informações, dentre outros benefícios.  
  Segundo Aline Zenker et al. (2019, p. 82) “a utilização de componentes que já foram aplicados, testados e validados traz
aumento de produtividade, qualidade e segurança ao software”.
  Assim, vimos as vantagens que uma empresa tem em integrar sistemas e a importância da reutilização de software: economizar tempo e trazer segurança e consistência ao sistema. Uma das técnicas de integração que iremos explorar nesse artigo é a API.


  API, significa Application Programming Interface (Interface de Programação de Aplicação); e Rest  Representational State Transfer (Transferência Representacional de Estado). A API funciona como uma camada de abstração de comandos, que pode ser acessado pelo cliente no modelo Request-Response (requisição-resposta). A comunicação entre cliente e servidor é efetuada sob o protocolo HTTP (Hypertext Transfer Protocol), utilizado para a troca de dados.


![request-response-image](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/71lmf8mp21kgzeuji1ae.png)

  O Rest é um padrão de arquitetura que define a forma como uma API deve ser desenvolvida, permitindo a comunicação eficaz com o servidor através de métodos que tornam possíveis a manipulação dos dados, métodos esses que são o GET, POST, PUT/PATCH e DELETE que serão explicados a seguir. 
  Os endpoints são onde iremos acessar a API, previstos em seu desenvolvimento. Em outras palavras, é uma URL que específica o recurso que será consultado.

Ao realizar a requisição a uma API, o servidor traz como resposta o estado atual do dado requisitado. Os dados que se deseja enviar pela requisição, são enviados pelo o seu corpo (mais popularmente em formato JSON), e o servidor retorna junto da resposta o status code, que funciona como um feedback da sua requisição acompanhada de 3 dígitos e uma mensagem de texto curta.
  Respostas Informativas (100 – 199);
  Respostas bem-sucedidas (200 – 299);
  Mensagens de redirecionamento (300 – 399);
  Respostas de erro do cliente (400 – 499);
  Respostas de erro do servidor (500 – 599);
Mais detalhes sobre os status code: https://developer.mozilla.org/pt-BR/docs/Web/HTTP/Status

  O método GET é utilizado quando se deseja buscar informações de uma API, por exemplo, você deseja consultar uma lista de funcionários com suas informações detalhadas de uma empresa, a requisição com o método GET funciona perfeitamente.

**[url_base/funcionario/getFuncionarios]** --> /getFuncionarios é um endpoint que acessará o método GET para retornar as informações para o cliente
  Corpo da resposta: 

![response-get-funcionarios](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0ukaae1jv97e69t3i7ju.png)
*status_code: 200


  O método POST, é útil quando é necessário enviar dados para a API, como criar um novo registro no sistema, seguindo o exemplo dos funcionários, caso você deseje registrar um novo funcionário na empresa.
**[url_base/funcionario/registrar]**  
Corpo da requisição:
![request-body-post](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2k6t4fkbxdfm6wl3594c.png)
Corpo da resposta:
  
![response-post](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/bzwqcrc9w8mqjefe4i96.png)

O status code 201 significa que o dado foi criado com sucesso.


  
  Os métodos PUT e PATCH, funcionam como um recurso para editar os dados de um registro já existente, entretanto, suas atuações se diferem de forma que o PUT atualiza todos os dados desse registro, enquanto o PATCH pode atualizar apenas um dado. Por exemplo, você deseja alterar os dados de um funcionário previamente registrado, caso queira alterar por completo, utilize o PUT, caso queira apenas um campo, o PATCH.

**[url_base/funcionario/edit/:{id}]** --> /edit/:{id} representa que o endpoint edit irá atualizar o funcionário que possuir o ID correspondente ao passado na URL, que possui basicamente como um filtro. Nesse caso iremos usar o ID: 1, logo /edit/1
Corpo da requisição:

![request-body-update](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/j8i5isw833pmx0eegy01.png)
Atualizamos o campo salary desse funcionário

Corpo da resposta:

![response-body-update](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8gv11t4m6xiehbceupv2.png)

  O método DELETE, como o nome sugere, é utilizado para excluir um registro do servidor. Por exemplo, você deseja excluir os dados de um funcionário da empresa.
**[url_base/funcionario/delete/2**
Normalmente, um dado excluído não retornada nada, então vamos realizar um GET dos funcionários para verificar se o que possui o ID 2 ainda está na lista:



![response-get](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/a0s3abqlanuhjlr4hmlj.png)


A requisição foi realizada com sucesso, logo seu status code será 200
  
 
Para se desenvolver uma API, é necessário estabelecer alguns passos:

- Planejamento --> entender os objetivos do seu desenvolvimento com casos de uso e estabelecimento de requisitos.
- Projetar --> Modelagem de dados, definição de endpoints e seus métodos, criação de fluxogramas.
- Tecnologia --> a partir do planejamento, é possível escolher quais as melhores tecnologias para resolver os problemas (qual banco de dados, linguagens de programação, framework, etc.)
- Desenvolvimento --> momento de codificação da API, implementar sua lógica e critérios de segurança, manipulação dos dados.
- Teste --> verificar o funcionamento das funções e seus endpoints. Realizar testes com antecedência e de maneira isolada são boas práticas para evitar efeitos bola de neve.
- Documentar --> uma documentação completa da API é necessária para ajudar outros desenvolvedores a utiliza-la; informações como a descrição dos endpoints, os seus objetivos são imprescindíveis.