Antes de seguirmos é importante entendermos o que que significa API. Api é uma sigla derivada da expressão inglesa application programing interface que traduzida para o português pode ser compreendida como uma interface de programação de aplicação, ou seja, é um conjunto de normas que possibilita a comunicação entre plataformas através de uma série de padrões e protocolos, complexo né.
Vamos tentar entender melhor. Imagina que você é falante nativo de português, você é um sistema que não se comunica bem com o falante nativo de inglês. Você falando português e este falante nativo de inglês falando em inglês porque vocês não possuem uma interface compatível. As normas de comunicação, os padrões e os protocolos são diferente.
Já você, falante de português consegue se comunicar, trocar informação muito facilmente com outro falante de português.
Então as apis surgiram justamente para padronizar a comunicação entre sistemas para que a troca de informação ocorra de uma forma organizada e de uma forma correta.
Algum tempo atrás quando nós pensavamos em integração de sistemas muitas vezes era comum dado um determinado sistema, ao final do dia o usuário exportava os dados daquele sistema em disquete, em um CD e enviava para o outro sistema poder fazer a leitura. Isso poderia levar minutos ou horas. Porém, com avanço de tecnologia, foi necessário a criação de ferramentas e de estratégias que permitisse a comunicação entre sistemas de uma maneira muito mais fácil, muito mais transparente e muito mais rápida.
Hoje os sistemas muitas vezes eles se comunicam em tempo real. As informações de um sistema são enviadas e recebidas por um outro sistema que já vai fazer uso destas informações para uma outra operação. Então nos dias atuais toda a comunicação entre sistemas evoluiu e por isso a necessidade de estratégias que permitisse sempre fazer as coisas da melhor forma possível, de maneira mais eficiente, mais eficaz, mais rápido e consumindo a menor quantidade de recurso possível.
Integração API – Ponto a Ponto
Uma das primeiras estratégias de integração de apis foi a integração ponto a ponto. Imagine um determinado sistema A que estava sendo construído e este sistema precisava consumir dados de um sistema B. Então um time de desenvolvimento criava a comunicação entre esses dois sistemas. Imagine depois, que um sistema C, um novo sistema, vai ser construído e este novo sistema C também precisa se comunicar com o mesmo sistema B. O que era muito comum, era um outro time muitas vezes acabar por construir desde zero toda a comunicação necessária deste sistema C com o sistema B, mesmo tendo sido criado uma comunicação muito parecida entre o sistema A e o sistema B do qual boa parte de tudo isto que foi criado poderia ter sido reutilizado.
Então na integração ponto a ponto a gente já consegue observar uma deficiência que é uma deficiência na reutilização, uma outra deficiência é que como as integrações eram feitas ponto a ponto, se tornava muito complexo e difícil a medida que os sistemas precisavam se comunicar com diversos outros, pois se tornava complexo a criação, a manutenção e a escalabilidade destas integrações.
Por fim, virava esse emaranhado de conexões muitas vezes duplicadas porque a conexão de um sistema A com B e de C com B era 80% semelhante e tinha apenas 20% de coisas diferentes.
Então isso no final das contas virava uma tremenda confusão, e quando nós falamos de confusão nós falamos de uma deficiência dos profissionais de entregar aquilo que as empresas precisavam para inovar, para ganhar mercado, para se despontar frente aos seus concorrentes devido à falta de reuzabilidade, alta complexidade, a difícil manutenabilidade e muitas outras coisas mais.
E, o que se observava é que não adiantava simplesmente aumentar a capacidade, a quantidade de times, de pessoas, de desenvolvedores, pois a medida que esse emaranhado crescia o crescimento da complexidade era muito maior, então adicionar desenvolvedores ao time não solucionava estas deficiências e por conta desta observação foi então pensado na estratégia focada voltada à api conhecida por up LED.
Integração API-Led (API-Led connectivity)
API-led connectivity is a methodical way to connect data to applications through reusable and purposeful APIs. These APIs are developed to play a specific role – unlocking data from systems, composing data into processes, or delivering an experience.
A conectividade direcionada a API nada mais é do que uma forma metódica, uma estratégia para conectar dados e aplicações através de APIs reutilizáveis e apis com propósito.
Opa então aqui nós já vemos um avanço em comparação com a integração ponto a ponto, porque aqui esta metodologia já é focada em reuso e as apis agora elas têm propósito.
Então a partir de agora, a partir desta metodologia API-Led, as apis são desenvolvidas para ter um papel específico e tendo um papel específico elas possuem “um tamanho limitado” que torna mais fácil a manutenção, se torna mais fácil a organização e dessa forma tendo este papel específico estas APIs desbloqueiam dados de sistema.
Elas se conectam em uma determinada camada com o sistema ERP, com CRM, com o banco de dados e proporcionam o acesso a informações em uma outra camada. Estas informações que são pertinentes elas são compostas, é adicionado lógica de negócio para que em uma camada superior seja entregue uma experiência ao usuário a quem vai consumir esta API de forma que em toda sua estrutura, de forma que em todo o seu fluxo, ela seja reutilizável e tenha propósito.
Então nós chegamos a esta estrutura que é um exemplo de uma estrutura seguindo a metodologia API-Led onde na parte inferior nós temos um conjunto de sistemas que uma determinada empresa usa, e agora nós temos uma organização em três camadas.
A camada de sistemas, a camada de processos e a camada de experiência. A camada de sistemas ela tem um papel que é se conectar a ferramentas, ao sistema que se necessita extrair informação/dados ou inserir informação/dados, ou seja, realizar a comunicação e ponto, nenhuma lógica de negócio é inserida neste momento.
Então você apenas obtendo ou fornecendo dados/informação você começa a ter um baixo acoplamento, o que é bom para reutilização.
Um nível acima nós temos a camada de processos. A camada de processos já é onde nós por exemplo adicionamos lógica de negócios, fazemos a composição. Por exemplo, aqui nós temos uma camada de processos que se comunica com o sistema Z e também se comunica com o sistema de pedidos, de histórico de pedidos. Podemos considerar que aqui existe uma lógica de negócio e como cada api têm propósito, foi então criado uma outra api que vai consumir informações, por exemplo desta API de clientes que é costumers e também vai consumir informação desta API de pedidos numa camada acima na camada de experiência.
Vamos pensar a camada de experiência como a camada onde existe a interação entre o usuário e o sistema, então aqui nós podemos ter por exemplo um sistema mobile ou um sistema web.
Então esta camada de experiência se conecta com a camada de processos e a API da camada de processos se conecta e busca ou leva a informação/dados para a camada de sistemas.Desta maneira é muito mais fácil dar manutenção nas APIs, identificar possíveis problemas, criar outras APIs para solucionar outros problemas de negócio, etc.