Como funcionam as APIs?

As APIs permitem que os aplicativos troquem informações enviando e recebendo chamadas de API.

Objetivos de aprendizado

Após ler este artigo, você será capaz de:

  • Descrever como as APIs funcionam
  • Diferenciar entre um endpoint e um cliente de API
  • Comparar diferentes protocolos de API

Conteúdo relacionado


Quer saber mais?

Assine o theNET, uma recapitulação mensal feita pela Cloudflare dos insights mais populares da internet.

Consulte a política de privacidade da Cloudflare para saber como coletamos e processamos seus dados pessoais.

Copiar o link do artigo

Como as APIs funcionam?

As Interfaces de programação de aplicativos (APIs) permitem que os programas de software se comuniquem entre si enviando e recebendo chamadas de API ou solicitações de informações. Essas solicitações são iniciadas por um cliente de API e aceitas por um endpoint de API.

Para trocar informações entre APIs, os desenvolvedores devem fornecer a documentação da API que descreve os tipos de solicitações que uma API pode aceitar, os casos de uso para os quais ela foi projetada e quaisquer outras condições (por exemplo protocolos, esquemas e requisitos de segurança) que terceiros devem seguir.

As chamadas de API permitem que as APIs compartilhem funcionalidades sem exigir que os desenvolvedores reescrevam funções do zero para cada aplicativo individual. Sem elas, os desenvolvedores não conseguiriam replicar facilmente funções em vários aplicativos ou solicitar dados de outros aplicativos, serviços e provedores.

O que é uma API?

Uma API é uma interface que permite que os programas de software compartilhem dados e funções. Esse método de comunicação ajuda a aprimorar as funcionalidades da maioria dos aplicativos web modernos.

Por exemplo, imagine que a Alice desenvolva um aplicativo que personalize listas de reprodução de música clássica de acordo com o humor dos ouvintes. Em vez de inserir manualmente milhares de faixas para preencher essas listas de reprodução, ela pode usar uma API que se conecta a um repositório de músicas externo, economizando tempo, dinheiro e desafios de desenvolvimento.

Os casos de uso de APIs são praticamente ilimitados. Elas conectam serviços em nuvem, consultam bancos de dados, atualizam automaticamente aplicativos móveis, transmitem conteúdo para vários dispositivos, agregam preços de voos e opções de entrega de alimentos e muito mais.

O que é um cliente de API?

Um cliente de API, às vezes chamado de "usuário", é o software que inicia uma chamada de API.

Antes de poder interagir com um endpoint de API, um cliente de API precisa verificar sua identidade. Isso ajuda a evitar que os invasores explorem as APIs para realizar ataques de negação de serviço distribuída (DDoS) ou outras ações maliciosas.

Normalmente, a autenticação é realizada por meio de um dos quatro métodos: uma sequência de caracteres exclusiva (chave de API), uma combinação de nome de usuário e senha, um token OAuth, ou mutual TLS. O uso de um método de autenticação forte é uma das maneiras pelas quais os desenvolvedores podem proteger as APIs contra ataques. (Saiba mais sobre segurança deAPIs .)

O que é um endpoint de API?

Um endpoint de API aceita a chamada de API e retorna as informações solicitadas.

Tanto os clientes quanto os endpoint de API referem-se a programas de software hospedados em servidores em vez de dispositivos de hardware diferentes. Os servidores de API podem hospedar vários endpoints, sendo que cada um deles recebe um Uniform Resource Identifier (URI) que permite que seja localizado por um cliente de API. Na maioria dos casos, esse URI é um localizador uniforme de recursos (URL), que aponta para locais baseados na internet (por exemplo, um site).

O que é um esquema de API?

Um esquema de API é um metadado que define as especificações que uma solicitação de API deve atender para ser considerada válida. Essas especificações podem incluir detalhes como o endpoint de destino, o método HTTP e outros requisitos estabelecidos pelos desenvolvedores.

Quando uma chamada de API é enviada de um cliente, ela deve atender às condições descritas no esquema. Só então um endpoint de API pode retornar as informações solicitadas. Para colocar isso em perspectiva, imagine que o Bob esteja planejando uma festa. No convite, ele especifica que somente os convidados que trouxerem margaridas amarelas receberão cartões de agradecimento após a festa. Dessa forma, se a Carol decidir levar rosas vermelhas para a festa, ela não vai receber um cartão de agradecimento depois.

Da mesma forma, uma chamada de API que não atenda aos requisitos definidos pelo esquema da API não vai receber uma resposta.

O que é uma API?

Assim como as próprias APIs, as chamadas de API variam de acordo com as especificações descritas na documentação de API. De modo geral, no entanto, uma chamada de API segue três etapas básicas:

  1. O cliente de API inicia a chamada de API ou a solicitação de informações. O cliente de API deve formatar a solicitação de acordo com o protocolo e o esquema fornecidos pelo endpoint de API.
  2. O endpoint de API recebe a solicitação. Em seguida, o endpoint de API autentica o cliente de API e valida o esquema de API. Isso ajuda a garantir que: a) a chamada seja proveniente de uma origem verificada e b) as condições da solicitação tenham sido atendidas.
  3. O endpoint de API retorna as informações solicitadas para o cliente de API. O esquema de API determina o tipo de respostas que podem ser retornadas ao cliente.

Para obter uma explicação mais detalhada de chamadas de API, leia O que é uma chamada de API?

Quais protocolos e arquiteturas são usados pelas APIs?

As APIs são compatíveis com vários protocolos diferentes. Um protocolo é um método de comunicação em uma rede; ele informa à API como formatar solicitações e respostas. O tipo de protocolo de API usado depende da finalidade para a qual a API foi desenvolvida, dos casos de uso a que ela serve e das restrições que ela apresenta.

Os dois protocolos de API mais comuns são o simple object access protocol (SOAP) e o remote procedural call (RPC). A representational state transfer (REST) é uma arquitetura de software que é frequentemente comparada a esses protocolos.

O SOAP fornece um método padronizado de envio e recebimento de chamadas entre APIs que usam diferentes sistemas operacionais e arquiteturas. Também é compatível com o protocolo de transferência de hipertexto (HTTP), protocolo de transferência de arquivos (FTP), protocolo de transferência de correio simples (SMTP)e outros protocolos da camada de aplicação. Ele só pode retornar dados aos clientes de API usando a linguagem de marcação extensível (XML).

O RPC é um dos métodos mais simples e antigos de comunicação entre APIs. Ele funciona iniciando uma chamada de procedimento remoto, durante a qual um cliente solicita uma função de um servidor remoto. A principal diferença entre o RPC e o SOAP/REST é que o RPC ajuda a executar ações (ou funções) específicas, enquanto o SOAP/REST é usado para recuperar recursos (ou dados).

O REST refere-se a uma arquitetura REST, que determina parcialmente como as chamadas de API são formatadas. Simplificando, o REST permite que um cliente solicite recursos de um servidor, que retorna as informações ao cliente em seu estado atual. As APIs REST geralmente usam o protocolo HTTP para formatar solicitações e respostas, mas também são compatíveis com o protocolo (FTP), SMTP e outros. Elas podem retornar dados aos clientes de API usando vários formatos diferentes, incluindo XML, notação de objeto JavaScript (JSON) e linguagem de marcação de hipertexto (HTML).

As APIs são vulneráveis a riscos de segurança?

Como qualquer coisa conectada a uma rede, as APIs são vulneráveis à exploração e ao abuso. Os ataques comuns à API incluem:

  • Ataques baseados em autenticação: a autenticação é uma parte essencial para garantir que as chamadas de API sejam enviadas e recebidas de origens legítimas. No entanto, os invasores ainda podem contornar essas medidas para realizar ataques, seja interceptando tokens de autenticação, roubando chaves de API ou usando outras táticas para obter credenciais confidenciais.
  • Exploração de vulnerabilidades: vulnerabilidades de API, como falha na autorização de nível de objeto, falha na autenticação de usuário, exposição excessiva de dados e outras do Top 10 do OWASP de segurança de APIs, referem-se a falhas em uma API que podem permitir que os invasores as acessem sem permissão. Ao explorar essas falhas, os invasores podem realizar violações de dados ou usar APIs para lançar ataques mais complexos.
  • Ataques DDoS: os invasores podem inundar as APIs com tráfego volumétrico em uma tentativa de interromper (ou parar completamente) o serviço que elas fornecem.

O Cloudflare API Gateway ajuda a mitigar esses ataques fornecendo autenticação forte, verificando cargas úteis em busca de dados confidenciais, validando esquemas de API e detectando e evitando o abuso de APIs. Saiba mais sobre o Cloudflare API Gateway.