DEV Community

tuliov1
tuliov1

Posted on

Integração de Sistemas - API Rest

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

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
*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
Corpo da resposta:

response-post

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
Atualizamos o campo salary desse funcionário

Corpo da resposta:

response-body-update

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

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.

Top comments (1)

Collapse
 
tiagoeuzebiocordeiro profile image
Tiago Euzebio Cordeiro

Artigo muito intuitivo e direto! Muito bom