Tipos de APIs e como determinar o que será criado

As interfaces de programação de aplicativos — mais comumente chamadas de APIs — fornecem dados e permitem que as empresas conectem sistemas, aplicativos, dispositivos e conjuntos de dados. É importante saber qual tipo de API funcionará melhor para um projeto com base em vários fatores: o caso de uso pretendido, quem usará e acessará essas APIs e os sistemas e conjuntos de dados que precisam ser conectados. Para desempenho de API e API management eficazes, é fundamental determinar o tipo ideal de API para construir e projetar a arquitetura adequadamente.

Tipos de APIs por finalidade

É raro uma organização decidir do nada que precisa de uma API — na maioria das vezes, as organizações começam com uma ideia, aplicativo, inovação ou caso de uso que requer conectividade com outros sistemas ou conjuntos de dados.

As APIs entram em cena como um meio de viabilizar a conectividade entre os sistemas e conjuntos de dados que precisam ser integrados.

As organizações podem usar diferentes tipos de APIs para diferentes fins: desde expor a funcionalidade de um sistema central internamente até habilitar um app mobile voltado para o cliente. A conectividade API-led da MuleSoft inclui três categorias de APIs:

  • APIs de sistema: disponibilizam dados de sistemas centrais de registro dentro de uma organização. Exemplos de sistemas críticos dos quais as APIs podem disponibilizar dados incluem ERP, sistemas de clientes e de faturamento e bancos de dados próprios. 
  • APIs de processo: interagem e moldam os dados em um único sistema ou entre sistemas — eliminando os silos de dados. As APIs de processo fornecem um meio de combinar dados e orquestrar várias APIs de sistema para uma finalidade comercial específica. Exemplos disso incluem criar uma visão 360 graus do cliente, do processamento do pedido e do status do envio. 
  • APIs de experiência: fornecem um contexto de negócios para os dados e processos que foram disponibilizados e estabelecidos com as APIs de sistema e processo. As APIs de experiência expõem os dados a serem consumidos por seu público-alvo — como aplicativos mobile, portais internos de dados de clientes etc.


Tipos de estratégias de API management

Depois de determinar o caso de uso para as APIs de sua organização, é preciso determinar quem acessará essas APIs. Na maioria das vezes, o caso de uso e o usuário pretendido andam de mãos dadas — por exemplo, você pode querer exibir dados do cliente para seus agentes de vendas e serviços internos, o usuário final pretendido que, neste caso, são os funcionários internos. 

Abaixo estão três tipos de APIs baseadas em como são gerenciadas e por quem são acessadas:

APIs externas

As APIs externas podem ser acessadas por terceiros (desenvolvedores, parceiros etc.) que estão fora da organização. Elas costumam tornar os dados e serviços de uma organização facilmente acessíveis por meio de autoatendimento por desenvolvedores em todo o mundo que procuram criar aplicativos e integrações inovadores. 
Um exemplo de API aberta é a API do Google Maps, que é usada em apps de terceiros (como aplicativos de carona e entrega de comida) para permitir o rastreamento e o mapeamento de localização. 

APIs internas

As APIs internas são o oposto das APIs abertas, pois são inacessíveis para consumidores externos e disponíveis apenas para desenvolvedores internos de uma organização. As APIs internas podem permitir iniciativas em toda a empresa, desde a adoção de DevOps e arquiteturas de microsserviço até a modernização legada e a transformação digital. O uso e a reutilização dessas APIs podem aumentar a produtividade, eficiência e agilidade de uma organização.
Um exemplo de API interna reutilizável é se uma equipe de call center criou uma API de informações do cliente usada em um aplicativo de call center para acessar seu nome, informações de contato, informações da conta etc. Essa equipe pode então reutilizar essa mesma API em um aplicativo da web ou aplicativo mobile voltado para clientes. 

APIs de parceiro

As APIs de parceiro ficam em algum lugar no meio das APIs internas e externas. Essas APIs são acessadas por outras pessoas fora da organização com permissões exclusivas. Normalmente, esse acesso especial é concedido a terceiros específicos para facilitar uma parceria comercial estratégica. 

Um caso de uso comum de uma API de parceiro é quando duas organizações querem compartilhar dados entre si — como o departamento de saúde de uma cidade e um hospital dessa cidade. Uma API de parceiro seria configurada para que cada organização tenha acesso aos dados necessários com o conjunto certo de credenciais e permissões.


Tipos de estilos de arquitetura de API

Outra área de escolha para uma API é o estilo ou os estilos arquitetônicos que serão empregados. É fundamental escolher um estilo ou padrão arquitetônico que dê melhor suporte ao uso pretendido da API se determinados recursos funcionais forem necessários. Isso tende a ser uma decisão de design de API tomada por equipes com maior inclinação técnica. 

Antes de tomar essa decisão, você precisará ter uma compreensão básica de qual infraestrutura já está instalada — se os sistemas são locais ou baseados em nuvem, quais sistemas e conjuntos de dados precisam ser usados, quais protocolos de segurança precisam ser implementados e quais funcionalidades são necessárias. No caso do design que prioriza a API, a funcionalidade e as experiências de usuário desejadas devem embasar as mudanças no estado de TI legado em vez de permitir que o status quo do estado de TI legado dite a funcionalidade ou experiência. 

Há vários estilos de arquitetura para APIs, bem como diversos formatos de dados dentro desses estilos. Listamos abaixo alguns dos mais comuns: 

  • REST: REST (Representational State Transfer) é um estilo de arquitetura que separa as preocupações do consumidor da API do provedor da API, usando comandos integrados ao protocolo de rede subjacente. Os clientes usam os links e formulários incluídos para executar ações (como ler, atualizar, compartilhar, aprovar etc.). HTML é o exemplo mais conhecido desse estilo e existem vários outros formatos apenas para APIs (HAL, CollectionJSON, Siren etc.). As APIs REST oferecem muitos benefícios — incluindo flexibilidade e capacidade de acomodar formatos de dados populares, como JSON e XML, entre outros.
  • RPC: Remote Procedure Calls — or RPCs — typically require developers to execute specific blocks of code on another system. RPC-style remote invocation of procedures other systems usually requires developers to call those procedures by name. RPC is protocol-agnostic, which means it has the potential to be supported on many protocols, but also loses the benefits of using native protocol capabilities (e.g. caching). The proliferation of non-standard procedure names from one RPC API to the next results in tighter coupling between API consumers and providers which in turn overburdens developers involved in all aspects of an RPC-driven API ecosystem. RPC architectural patterns can be observed in popular API technologies such as SOAP, GraphQL, and gRPC.
  • Baseadas em eventos/Streaming: às vezes chamadas de arquiteturas de eventos, em tempo real, de streaming, assíncronas ou push, as APIs baseadas em eventos não esperam que um consumidor de API as chame para enviar uma resposta. Em vez disso, uma resposta é disparada pela ocorrência de um evento. Esses serviços expõem eventos nos quais os clientes podem se inscrever para receber atualizações quando os valores no serviço mudam. Há muitas variações para esse estilo, incluindo (entre outros) reativo, publicação e assinatura, notificação de eventos e CQRS.

Estamos cercados por todos os tipos de eventos aos quais esse padrão de API é adequado. Aqui citamos alguns:

  • Uma conta do Twitter emite um novo tweet.
  • A temperatura em um termômetro remoto muda.
  • Um veículo passa por um sensor na calçada.
  • Uma câmera de segurança detecta movimento em seu campo de visão.
  • Uma máquina de eletrocardiografia detecta um batimento cardíaco irregular.
  • Uma porta de saída de emergência é aberta.
  • Um detector de fumaça detecta fumaça.

O design e o gerenciamento eficazes de APIs exigem muitas considerações. O conteúdo acima deve fornecer um instantâneo das diferentes decisões que as organizações precisam tomar ao se prepararem para projetar, implementar e gerenciar uma API. Para obter mais informações, faça download do nosso whitepaper sobre conectividade API-led