Início topics O que é uma Interface de Programação de Aplicativos (API)? O que é uma API (interface de programação de aplicativos)?
Explore a solução de API da IBM Inscreva-se para receber atualizações sobre tópicos de IA
Ilustração com colagem de pictogramas de equipamento, braço robótico, telefone celular

Publicado: 09 de abril de 2024
colaborador: Michael Goodwin

O que é uma API?

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.

Guia para automação inteligente em toda a empresa

Saiba como a automação inteligente pode transformar suas operações comerciais em uma vantagem competitiva.

Conteúdo relacionado

Cadastre-se para receber o guia para operacionalizar o FinOps

Aprenda como a IA otimiza agentes baseados em API
Como funcionam as APIs?

É ú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.

Tipos de APIs

As APIs podem ser categorizadas por caso de uso, incluindo APIs de dados, APIs de sistema operacional, APIs remotas e APIs da web.

APIs de dados (ou banco de dados)

Usado para conectar aplicativos e sistemas de gerenciamento de banco de dados.

APIs do sistema operacional (local)

Usado para definir como os aplicativos usam os serviços e recursos do sistema operacional.

APIs remotas

Usado para definir como os aplicativos em diferentes dispositivos interagem.

APIs da Web

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

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.

APIs de parceiros

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.

APIs internas

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

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.

exemplos de api

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:

Logins universais

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.

Internet das coisas (IoT)

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.

Comparações de reservas de viagens

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.

Aplicativos de navegação

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.

Redes sociais

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.

Aplicações SaaS

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.

Protocolos API, estilos arquitetônicos e linguagens

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 (simple object access protocol)

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.

Chamada de procedimento remoto (RPC)

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

XML-RPC (XML- chamada de procedimento remoto)

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.

JSON-RPC

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.

gRPC

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.

WebSocket

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 (transferência de estado representacional)

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

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. 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.

REST x SOAP

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.

REST vs. GraphQL

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

APIs, serviços da web e microsserviços
APIs vs. serviços da Web

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.

APIs, microsserviços e desenvolvimento nativo da nuvem

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.

Benefícios da API

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.

Colaboração aprimorada

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.

Inovação acelerada

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).

Monetização dos dados

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.

Segurança do sistema

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.

Segurança e privacidade do usuário

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.

Soluções relacionadas
IBM® API Connect

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.

Explore o IBM API Connect
Soluções de integração da IBM

Conecte, automatize e libere o potencial de negócios com soluções de integração da IBM.

Explore as soluções de integração da IBM
Soluções iPaaS

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.

Explore as soluções IBM iPaaS
Dê o próximo passo

Use o IBM API Connect para proteger e gerenciar APIs corporativas ao longo de seus ciclos de vida. Ele ajuda você e seus clientes a criar, gerenciar, proteger, divulgar e monetizar consistentemente APIs corporativas, e também está disponível como uma plataforma de gerenciamento de API altamente escalável no IBM Marketplace and AWS.

Explore o API Connect Agende uma demonstração em tempo real
Notas de rodapé

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