Publicado: 09 de abril de 2024
colaborador: Michael Goodwin
Uma API, ou interface de programação de aplicativos, é um conjunto de regras ou protocolos que permitem que aplicativos de software se comuniquem entre si para trocar dados, recursos e funcionalidades.
APIs simplificam e aceleram o desenvolvimento de aplicativos e software, permitindo que os desenvolvedores integrem dados, serviços e recursos de outros aplicativos, em vez de desenvolvê-los do zero. As APIs também oferecem aos proprietários de aplicativos uma maneira simples e segura de disponibilizar os dados e as funções dos aplicativos para os departamentos da organização. Os proprietários de aplicativos também podem compartilhar ou comercializar dados e funções para parceiros de negócios ou terceiros.
As APIs permitem o compartilhamento apenas das informações necessárias, mantendo ocultos outros detalhes internos do sistema, o que auxilia na segurança do sistema. Os servidores ou dispositivos não precisam expor totalmente os dados: as APIs permitem o compartilhamento de pequenos pacotes de dados, relevantes para a solicitação específica.
A documentação da API é como um manual de instruções técnicas que fornece detalhes sobre uma API e informações para desenvolvedores sobre como trabalhar com uma API e seus serviços. Uma documentação bem projetada promove uma melhor experiência de API para os usuários e geralmente contribui para APIs mais bem-sucedidas.
Saiba como a automação inteligente pode transformar suas operações comerciais em uma vantagem competitiva.
Cadastre-se para receber o guia para operacionalizar o FinOps
É útil pensar na comunicação da API em termos de solicitação e resposta entre um cliente e um servidor. O aplicativo que envia a solicitação é o cliente e o servidor fornece a resposta. A API é a ponte que estabelece a conexão entre eles.
Uma maneira simples de entender como as APIs funcionam é analisar um exemplo comum: o processamento de pagamentos de terceiros. Quando um usuário compra um produto em um site de comércio eletrônico, o site pode pedir ao usuário para "Pagar com o PayPal" ou outro tipo de sistema de terceiros. Essa função depende de APIs para fazer a conexão.
Quando o comprador clica no botão de pagamento, uma chamada de API é enviada para recuperar informações. Esta é a solicitação. Essa solicitação é processada de um aplicativo para o servidor web por meio do Uniform Resource Identifier (URI) da API e inclui um verbo de solicitação, cabeçalhos e, às vezes, um corpo de solicitação.
Depois de receber uma solicitação válida da página do produto, a API liga para o programa externo ou servidor web, neste caso, o sistema de pagamento de terceiros.
O servidor envia uma resposta à API com as informações solicitadas.
A API transfere os dados para o aplicativo que fez a solicitação inicial, neste caso, o site do produto.
Embora a transferência de dados possa variar dependendo do serviço da web usado, todas as solicitações e respostas ocorrem por meio de uma API. Não há visibilidade na interface do usuário, o que significa que as APIs trocam dados dentro do computador ou do aplicativo e aparecem para o usuário como uma conexão contínua.
As APIs podem ser categorizadas por caso de uso, incluindo APIs de dados, APIs de sistema operacional, APIs remotas e APIs da web.
Usado para conectar aplicativos e sistemas de gerenciamento de banco de dados.
Usado para definir como os aplicativos usam os serviços e recursos do sistema operacional.
Usado para definir como os aplicativos em diferentes dispositivos interagem.
Usado para permitir a transferência de dados e funcionalidades pela internet usando o protocolo HTTP.
Atualmente, a maioria das APIs são APIs da web. As APIs da web são um tipo de API remota (o que significa que a API utiliza protocolos para manipular recursos externos) que expõem os dados e a funcionalidade de um aplicativo na Internet.
Os quatro principais tipos de APIs da web são:
APIs abertas são interfaces de programação de aplicativos de código aberto que você pode acessar com o protocolo HTTP. Também conhecidas como APIs públicas, elas definiram endpoints de API e formatos de solicitação e resposta.
As APIs de parceiros conectam parceiros comerciais estratégicos. Normalmente, os desenvolvedores acessam essas APIs no modo de autoatendimento por meio de um portal público de desenvolvedores de APIs. Ainda assim, eles precisam concluir um processo de integração e obter credenciais de login para acessar APIs de parceiros.
As APIs internas ou privadas permanecem ocultas dos usuários externos. Essas APIs privadas não estão disponíveis para usuários fora da empresa. Em vez disso, as organizações os usam para melhorar a produtividade e a comunicação entre diferentes equipes internas de desenvolvimento.
APIs compostas combinam vários dados ou APIs de serviço. Eles permitem que os programadores acessem vários endpoints em uma única chamada. APIs compostas são úteis na arquitetura de microsserviços, onde executar uma única tarefa pode exigir informações de várias fontes.
Como as APIs permitem que as organizações abram o acesso a seus recursos e, ao mesmo tempo, mantenham a segurança e o controle, elas se tornaram um aspecto valioso dos aplicativos comerciais e pessoais modernos.
Aqui estão alguns exemplos de API que os usuários frequentemente encontram:
Um exemplo popular de API é a função que permite que as pessoas façam login em sites usando seus detalhes de login do perfil do Facebook, X ou Google. Esse recurso conveniente permite que qualquer site use uma API de um dos serviços mais populares para autenticação rápida. Esse recurso ajuda a economizar o tempo e o incômodo dos usuários de configurar um novo perfil para cada aplicativo Web ou nova associação.
Esses "dispositivos inteligentes" oferecem funcionalidade adicional, como telas sensíveis ao toque habilitadas para internet e coleta de dados, por meio de APIs. Por exemplo, uma geladeira inteligente pode se conectar a aplicativos de receita ou fazer e enviar anotações para celulares por mensagem de texto. As câmeras internas se conectam a vários aplicativos para que os usuários possam ver o conteúdo da geladeira de qualquer lugar.
Os sites de reserva de viagens agregam milhares de voos, apresentando as opções mais baratas para cada data e destino. As APIs permitem esse serviço, fornecendo aos usuários do aplicativo acesso às informações mais recentes sobre disponibilidade de hotéis e companhias aéreas.
Este acesso está disponível através de um navegador web ou da própria aplicação da empresa de reservas de viagens. Com uma troca autônoma de dados e solicitações, as APIs reduzem drasticamente o tempo e o esforço envolvidos na verificação de voos ou acomodações disponíveis.
Os aplicativos de navegação usam APIs principais que exibem mapas estáticos ou interativos. Esses aplicativos também usam outras APIs e recursos para fornecer aos usuários direções, limites de velocidade, pontos de interesse, avisos de trânsito e muito mais. Os usuários se comunicam com uma API ao traçar rotas de viagem ou rastrear itens em movimento, como um veículo de entrega.
As empresas de mídia social usam APIs para permitir que outras entidades compartilhem e incorporem conteúdo apresentado em aplicativos de mídia social em seus próprios sites. Por exemplo, a API do Instagram permite que as empresas incorporem sua grade do Instagram em seu site e que a grade seja atualizada automaticamente à medida que os usuários adicionam novas publicações.
As APIs são parte integrante do crescimento dos produtos de software como serviço (SaaS). Plataformas como CRMs (ferramentas de gerenciamento de relacionamento com o cliente) geralmente incluem várias APIs integradas que permitem que as empresas se integrem aos aplicativos que elas já usam, como mensagens, redes sociais e aplicativos de e-mail.
Essa integração reduz drasticamente o tempo gasto alternando entre aplicativos para tarefas de vendas e marketing. Ele também ajuda a reduzir ou evitar silos de dados que possam existir entre departamentos que usam aplicativos diferentes.
Tradicionalmente, a API faz referência a uma interface conectada a uma aplicação criada com qualquer uma das linguagens de programação de baixo nível, como o JavaScript. No entanto, as APIs modernas variam em suas arquiteturas e no uso de formatos de dados. Normalmente, são criados para HTTP, resultando em interfaces amigáveis ao desenvolvedor facilmente acessíveis e amplamente compreendidas por aplicativos escritos em Java, Ruby, Python e muitas outras linguagens.
À medida que o uso de APIs da web aumentou, isso levou ao desenvolvimento e uso de determinados protocolos, estilos, padrões e linguagens. Essas estruturas fornecem aos usuários um conjunto de regras definidas, ou especificações de API, que criam tipos de dados, comandos e sintaxe aceitos. Em vigor, esses protocolos de API facilitam a troca de informações padronizada.
SOAP é uma especificação leve de protocolo de mensagens baseada em XML que permite que os endpoints enviem e recebam dados por meio de uma série de protocolos de comunicação, incluindo SMTP (protocolo de transferência de correio eletrônico simples) e HTTP (protocolo de transferência de hipertexto). O SOAP é independente, o que permite que as APIs SOAP compartilhem informações entre aplicativos ou componentes de software executados em ambientes diferentes ou escritos em idiomas diferentes.
A chamada de procedimento remoto (RPC) é um protocolo que fornece o paradigma de comunicação de alto nível usado no sistema operacional. O RPC pressupõe a existência de um protocolo de transporte de baixo nível, como o protocolo de controle de transmissão/Internet Protocol (TCP/IP) ou o protocolo de datagrama de usuário (UDP), para transportar os dados da mensagem entre programas de comunicação.
O RPC implementa um sistema lógico de comunicação cliente-servidor projetado especificamente para dar suporte a aplicativos de rede. O protocolo RPC permite que os usuários trabalhem com procedimentos remotos como se fossem locais.1
O protocolo XML-RPC depende de um formato XML específico para transferir dados. O XML-RPC é mais antigo que o SOAP, porém mais simples e relativamente leve, pois usa largura de banda mínima.
Assim como o XML-RPC, o JSON-RPC é uma chamada de procedimento remoto, que usa JSON (JavaScript Object Notation) em vez de XML. JSON é um formato leve para troca de dados que é simples de analisar e usa pares nome/valor e listas ordenadas de valores. Como o JSON usa estruturas de dados universais, ele pode ser usado com qualquer linguagem de programação.
O gRPC é uma framework RPC de alto desempenho e de código aberto desenvolvida inicialmente pelo Google. O gRPC usa o protocolo de rede HTTP/2 e o formato de dados Protocol Buffers e é comumente usado para conectar serviços em uma arquitetura de microsserviços.
As APIs do WebSocket permitem a comunicação bidirecional entre o cliente e o servidor. Esse tipo de API não exige o estabelecimento de uma nova conexão para cada comunicação - uma vez estabelecida a conexão, ela permite a troca contínua. Isso torna as APIs Web Socket ideais para comunicação em tempo real.
REST é um conjunto de princípios de arquitetura de API da web. As APIs REST— também conhecidas como APIs RESTful — são APIs que aderem a certas restrições arquitetônicas REST. As APIs REST usam solicitações HTTP como GET, PUT, HEAD e DELETE para interagir com recursos. O REST disponibiliza dados como recursos, com cada recurso representado por um URI exclusivo. Os clientes solicitam um recurso fornecendo seu URI.
APIs REST são sem estado, elas não salvam dados do cliente entre solicitações. É possível construir APIs RESTful com protocolos SOAP, mas os profissionais geralmente veem os dois padrões como especificações concorrentes.
GraphQL é uma linguagem de consulta de código aberto e tempo de execução do servidor que especifica como os clientes devem interagir com APIs.2 O GraphQL permite que os usuários façam solicitações de API com apenas algumas linhas, em vez de terem que acessar endpoints complexos com muitos parâmetros. Esse recurso pode facilitar a geração e a resposta a consultas de API, especialmente solicitações mais complexas ou específicas que visam vários recursos.
SOAP e REST representam abordagens diferentes para o design da API, descrevendo regras e padrões de como uma API deve interagir com outros aplicativos. SOAP é um protocolo, enquanto REST é um conjunto de restrições que constituem um estilo arquitetônico. Ambos usam HTTP para trocar informações.
O REST costuma ser considerado uma alternativa mais simples ao SOAP porque é leve, flexível, transparente e relativamente fácil de usar; O SOAP exige que os usuários escrevam mais código para concluir cada tarefa do que o REST exige.
O SOAP é mais determinístico e robusto (devido à verificação de tipo), e os proponentes argumentam que é mais fácil de usar devido ao suporte SOAP incorporado em muitas ferramentas de desenvolvimento.3 O SOAP apresenta conformidade integrada, e os desenvolvedores geralmente o consideram um protocolo mais seguro, mais adequado para situações com requisitos rigorosos de integridade de dados.
Os sistemas RESTful suportam mensagens em diferentes formatos, como texto simples, HTML, YAML, XML e JSON, enquanto o SOAP permite somente XML. Cada um tem seus pontos fortes e a "escolha certa" pode depender do caso de uso. No entanto, a capacidade de oferecer suporte a vários formatos para armazenamento e troca de dados é uma das razões pelas quais o REST é uma escolha predominante para a criação de APIs públicas.
O GraphQL é uma linguagem de consulta e tempo de execução de API que o Facebook desenvolveu internamente em 2012 antes de passar a ser código aberto em 2015. O GraphQL e o REST são ambos sem estado, utilizam um modelo cliente/servidor e usam HTTP. O GraphQL resolve algumas limitações do REST, por exemplo, fornecendo a capacidade de direcionar com mais precisão os recursos desejados com uma única solicitação.
As APIs REST seguem uma estrutura fixa e sempre retornam um conjunto de dados completo para um objeto especificado. Se a solicitação for mais complexa, abrangendo vários recursos, por exemplo, o cliente deverá enviar solicitações separadas para cada recurso. Essas limitações podem levar a problemas de busca insuficiente ou excessiva.
Leia mais sobre GraphQL vs. REST aqui
Nem as APIs REST nem as GraphQL são inerentemente superiores. São ferramentas diferentes, adequadas a tarefas diferentes.
O REST geralmente é mais fácil de implementar e pode ser uma boa opção quando se prefere um protocolo de comunicação simples e armazenável em cache com controles de acesso rigorosos (para sites de comércio eletrônico voltados para o público, como Shopify e GitHub, por exemplo).
As APIs do GraphQL permitem a busca de dados mais flexível e eficiente, o que pode melhorar o desempenho do sistema e a facilidade de uso para os desenvolvedores. Esses recursos tornam o GraphQL especialmente útil para criar APIs em ambientes complexos com requisitos de front-end em rápidamudança.4
Um serviço web é um componente de software de internet que facilita transferências de dados em uma rede. Uma vez que um serviço web torna os dados e funcionalidades de uma aplicação acessíveis para outras aplicações, podemos dizer que, essencialmente, todo serviço web é uma API. No entanto, nem toda API é um serviço web.
APIs são qualquer componente de software que serve como intermediário entre dois aplicativos desconectados. Enquanto os serviços da web também conectam aplicativos, eles exigem uma rede para fazer isso. Os serviços da Web geralmente são privados e somente usuários aprovados podem acessá-los.
Microsserviços é um estilo de arquitetura que divide um aplicativo em componentes menores e independentes, geralmente conectados usando APIs REST. A criação de um aplicativo como uma coleção de serviços separados permite que os desenvolvedores trabalhem em um componente de aplicativo independentemente dos outros e torna os aplicativos mais fáceis de testar, manter e dimensionar.
A arquitetura de microsserviços se tornou mais predominante com o surgimento da computação em nuvem e, juntamente com os contêineres e o Kubernetes, é fundamental para o desenvolvimento de aplicação nativa em nuvem.
APIs simplificam o design e o desenvolvimento de novos aplicativos e serviços, além da integração e gerenciamento de aplicativos existentes. Eles também oferecem benefícios significativos para desenvolvedores e organizações em geral.
A empresa média utiliza quase 1.200 aplicativos de nuvem (link fora do ibm.com), muitos dos quais estão desconectados. APIs possibilitam a integração para essas plataformas e aplicações se comunicarem perfeitamente entre si. Por meio dessa integração, as empresas podem automatizar fluxos de trabalho e melhorar a colaboração no ambiente de trabalho. A ausência de APIs deixaria muitas empresas sem conectividade, criando silos de informação que prejudicariam a produtividade e o desempenho.
As APIs oferecem flexibilidade, permitindo que as empresas façam conexões com novos parceiros de negócios e ofereçam novos serviços ao seu mercado existente. Esta flexibilidade também permite às empresas aceder a novos mercados que podem aumentar os retornos e impulsionar a transformação digital.
Por exemplo, a empresa Stripe começou como uma API com apenas sete linhas de código. Desde então, a empresa trabalhou com muitas das maiores empresas do mundo. A Stripe se diversificou para oferecer empréstimos e cartões corporativos, e recebeu uma avaliação recente de US$ 65 bilhões (link reside fora de ibm.com).
Muitas empresas optam por oferecer APIs gratuitamente, pelo menos inicialmente, para poderem criar um público de desenvolvedores em torno de sua marca e estabelecer relacionamentos com parceiros em potencial. Se a API conceder acesso a recursos digitais valiosos, uma empresa a monetizará vendendo acesso. Essa prática é conhecida como economia de API.
Quando o AccuWeather (link fora de ibm.com) iniciou seu portal de autoatendimento para desenvolvedores para vender uma ampla variedade de pacotes de API, em apenas 10 meses atraiu 24 mil desenvolvedores, vendendo 11 mil chaves de API. Essa mudança ajudou a construir uma comunidade próspera no processo.
As APIs separam o aplicativo solicitante da infraestrutura do serviço de resposta e oferecem camadas de segurança entre os dois à medida que se comunicam. Por exemplo, as chamadas de API geralmente exigem credenciais de autenticação. Cabeçalhos HTTP, cookies ou cadeias de caracteres de consulta podem fornecer segurança adicional durante a troca de dados. Um API gateway pode controlar o acesso para minimizar ainda mais as ameaças à segurança.
As APIs fornecem proteção adicional dentro de uma rede. Eles também podem fornecer outra camada de proteção para usuários pessoais. Quando um site solicita a localização de um usuário (uma API de localização fornece essas informações), o usuário pode decidir se deseja permitir ou negar essa solicitação.
Muitos navegadores da web e sistemas operacionais de desktop e móveis têm estruturas de permissão integradas. Quando um aplicativo precisa acessar arquivos por meio de uma API, sistemas operacionais como iOS, macOS, Windows e Linux usam permissões para esse acesso.
Gerencie seu ciclo de vida de API em várias nuvens, aumente a socialização e otimize os esforços de monetização em todo o ecossistema de negócios.
Conecte, automatize e libere o potencial de negócios com soluções de integração da IBM.
Conecte aplicações, dados, processos de negócios e serviços, estejam eles hospedados no local, em uma nuvem privada ou em um ambiente de nuvem pública.
1"Remote Procedure Call," ibm.com, 3 de novembro de 2023
2"What is GraphQL," Chrystal R. China, ibm.com, 8 de dezembro de 2023
3"Comparação de REST e SOAP," ibm.com, 5 de março de 2021"
4"GraphQL versus REST API: qual a diferença?", Chrystal R. China, ibm.com, 29 de março de 204