O que é uma API? (interface de programação de aplicativos)

API é o acrônimo de Application Programming Interface (interface de programação de aplicativos), um intermediário de software que permite que dois aplicativos conversem entre si. Cada vez que você usa um app como o Facebook, envia uma mensagem instantânea ou verifica a previsão do tempo em seu telefone, você está usando uma API.

O que é um exemplo de uma API?

Quando você usa um app em seu celular, ele se conecta à Internet e envia dados para um servidor. Em seguida, o servidor recupera esses dados, interpreta-os, executa as ações necessárias e envia-os de volta para seu telefone. O app interpreta esses dados e apresenta as informações que você solicitou de maneira legível. Todo esse processo ocorre por meio de uma API.

Para ficar mais claro, vamos analisar um exemplo do dia a dia.

Imagine que você está em um restaurante, conferindo o cardápio para fazer seu pedido. A cozinha é a parte do “sistema” responsável por preparar seu pedido. Para seu pedido chegar até a cozinha e, depois, o prato chegar até sua mesa, é necessário contar com um elo de ligação essencial. Esse elo de ligação é o garçom — ou a API. O garçom (a API) é o mensageiro que registra seu pedido e informa à cozinha (o sistema) o que fazer. Depois, ele traz o prato (ou a resposta à sua solicitação) até você.

Este é um exemplo de API na vida real. Talvez você esteja familiarizado com o processo de pesquisa de voos online. Assim como as opções no cardápio do restaurante, você pode escolher entre diversas cidades, datas de partida e retorno e muito mais. Vamos imaginar que você esteja reservando um voo no website de uma companhia aérea. Você escolhe uma cidade e a data de partida, outra cidade e a data de retorno e a classe em que vai viajar, entre outras variáveis. Para reservar seu voo, você interage com o website da companhia aérea para acessar o banco de dados dela, conferir se há lugares disponíveis nessas datas e o custo da passagem.

No entanto, e se você não estiver usando o website da companhia aérea, que é um canal de acesso direto às informações? E se você estiver usando um serviço online de viagens, como Kayak ou Expedia, que agrega informações de bancos de dados de várias companhias aéreas?

O serviço de viagens, neste caso, interage com a API da companhia aérea. A API é a interface a quem o serviço online de viagens solicita as informações do banco de dados da companhia aérea para reservar o assento, selecionar as opções de bagagem etc. Ela atua como o garçom do nosso exemplo anterior. Em seguida, a API obtém a resposta da companhia aérea e a entrega ao serviço online de viagens, que, em seguida, mostra as informações mais atualizadas e relevantes.

A API também oferece uma camada de segurança

Os dados de seu telefone nunca são totalmente expostos ao servidor e, da mesma forma, o servidor nunca é totalmente exposto ao seu telefone. Em vez disso, eles se comunicam por meio de pequenos pacotes de dados, compartilhando apenas o que é necessário — como quando você faz um pedido para delivery. Você diz ao restaurante o que gostaria de comer, o restaurante diz o que precisa em troca e, no final, você recebe sua refeição.

As APIs se tornaram tão valiosas que compõem grande parte da receita de muitos negócios. Google, eBay, Salesforce.com, Amazon e Expedia são apenas alguns exemplos de empresas que ganham dinheiro com APIs. O conceito de “economia de API” se refere a esse marketplace de APIs.

A API moderna

Anteriormente, “API” era definida como qualquer tipo de interface de conectividade genérica a um aplicativo. Mais recentemente, no entanto, a API moderna assumiu algumas características que a tornam extraordinariamente valiosa e útil:

  • A API moderna adere a padrões (normalmente HTTP e REST) e é de fácil manipulação para desenvolvedores, além de ser altamente acessível e compreensível
  • Ela é tratada mais como produto do que como código. Ela é projetada para ser consumida por um público específico (por exemplo, desenvolvedores de mobile), além de ser documentada e ter seu controle de versões realizado de forma a conferir previsibilidade às necessidades de manutenção e ciclo de vida.
  • Como ela é bastante padronizada, apresenta uma aderência muito mais rigorosa a processos de segurança e governança, além de ser monitorada e gerenciada com desempenho e escala em mente
  • Como qualquer outro produto de software, a API moderna tem seu próprio ciclo de vida de desenvolvimento de software (SDLC) para design, teste, desenvolvimento, gerenciamento e controle de versão.  Além disso, ela é bem documentada para consumo e controle de versão.