O que é uma API?

Uma interface de programação de aplicativos (API) é uma maneira de um software usar as funções de outro software.

Objetivos de aprendizado

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

  • Definir "API".
  • Explicar chamadas de API, endpoints de API, esquema de API, e integração de API
  • Descrever APIs da web, APIs SOAP e APIs REST
  • Entender as proteções de segurança de APIs

Copiar o link do artigo

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

Uma interface de programação de aplicativos (API) é um conjunto de regras que permite que um programa de software transmita dados para outro programa de software. As APIs permitem que os desenvolvedores evitem trabalho redundante; em vez de construir e reconstruir funções de aplicativos que já existem, os desenvolvedores podem incorporar as existentes em seus novos aplicativos formatando as solicitações conforme a API exige.

Uma API é uma "interface", ou seja uma maneira de uma coisa interagir com outra. Como exemplo do mundo real, um caixa eletrônico tem uma interface — uma tela e vários botões — permitindo que os clientes interajam com seu banco e solicitem serviços, como receber dinheiro. Da mesma forma, uma API é como um software interage com outro programa para obter os serviços necessários.

Imagine que a Jennifer construa um site que ajude os passageiros a verificar o tráfego na estrada antes de sair para o trabalho. A Jennifer poderia gastar muito tempo e dinheiro configurando um sistema complexo de monitoramento de rodovias para fornecer essas informações aos usuários de seu site. Mas esses recursos já existem, pois terceiros criaram esses sistemas. Em vez de reinventar a roda, o site de Jennifer usa uma API oferecida por um serviço externo de monitoramento de rodovias. Agora a Jennifer pode se concentrar na construção de outros aspectos do site.

O que é uma chamada de API?

Uma chamada de API, também conhecida como uma solicitação de API, é uma mensagem direcionada a uma API que aciona o uso da API. Voltando ao exemplo, Jennifer constrói seu site de forma que, quando carregado, gera automaticamente uma chamada de API para o serviço de monitoramento de rodovias. A resposta retorna ao site desse serviço e permite que ele exiba as informações mais recentes de tráfego na rodovia.

As chamadas de API precisam ser formatadas de acordo com os requisitos da API para funcionar. Os requisitos da API são chamados de "esquema". O esquema também descreve os tipos de respostas que são fornecidas a cada solicitação.

Suponha que um passageiro use o site da Jennifer para verificar o tráfego na Highway 192. O site envia uma chamada de API para fornecer essas informações — uma mensagem que diz "Highway 192". O servidor de API do serviço de monitoramento de rodovias recebe essa mensagem e responde com os tempos de viagem na Highway 192. Imagine o esquema da API desta forma:

Solicitação da API Resposta da API
"Highway 192" Tempos de viagem na Highway 192
"Highway 217" Tempos de viagem na Highway 217
"Highway 225" Tempos de viagem na Highway 225

(Observe que este é um exemplo altamente simplificado — solicitações, respostas e esquemas de API do mundo real são mais complexos).

Agora suponha que o site da Jennifer envie uma solicitação de API para "Highway ASDFGHJ". Esta não é uma solicitação válida porque não está em conformidade com o esquema da API, que permite apenas nomes reais de rodovias. O servidor não poderá fornecer uma resposta utilizável a tal solicitação.

O que é um endpoint de API?

Um endpoint é o final de um canal de comunicação. Um endpoint de API é o local de onde se origina uma resposta de API.

No exemplo, o cliente da conexão da API é o site da Jennifer, e o endpoint é o servidor que hospeda a API. As chamadas de API da Jennifer precisam ir para um determinado URL (um URL é um endereço da web, como www.cloudflare.com/learning) pelo qual o servidor de API é responsável de modo a obter uma resposta.

O que é integração de APIs?

A integração de APIs é a combinação de dois ou mais aplicativos que utilizam APIs. A integração de APIs é o que permite que um aplicativo se beneficie das capacidades de outro aplicativo, assim como a combinação de uma equipe de vendas e uma equipe de marketing em um escritório permite que essas duas equipes trabalhem juntas e se beneficiem dos esforços uma da outra. As integrações de APIs também são comumente usadas para sincronizar dados entre dois aplicativos ou bancos de dados.

O que é uma API web?

Qualquer coisa que envolva código de computador pode ter uma API, desde sistemas operacionais até bibliotecas de software. Uma API web é especificamente para uso por aplicativos web que são acessados através da internet.

As APIs web são incrivelmente importantes para a internet moderna. Quase todos os aplicativos voltados para o usuário dependem de APIs para funcionar (não apenas o site da Jennifer!). Filosofias inteiras de desenvolvimento de software dependem do uso de APIs — uma dessas filosofias é a JAMstack, onde JAM significa JavaScript, APIs, marcação. Outro exemplo é a arquitetura de microsserviços, que utiliza APIs para chamar as diferentes funções que compõem um aplicativo. Mesmo os aplicativos criados sem essas abordagens geralmente dependem de APIs.

O que são APIs SOAP e APIs REST?

APIs SOAP e APIs REST descrevem diferentes categorias de APIs.

SOAP (Simple Object Access Protocol) é um tipo de protocolo. APIs SOAP são APIs que usam apenas o protocolo SOAP.

REST (REpresentational State Transfer) é um estilo de arquitetura para serviços web. Uma API REST é qualquer API criada usando a arquitetura REST. Ao contrário das APIs SOAP, as APIs REST funcionam com qualquer protocolo. A maioria das APIs hoje são APIs REST.

As APIs introduzem riscos de segurança?

Assim como permitir que uma pessoa use um aplicativo apresenta o risco de que a pessoa abuse do aplicativo, uma API apresenta o risco de um cliente de API abusar do serviço. Além disso, as chamadas de API da web viajam pela internet e podem ser interceptadas, falsificadas ou modificadas como qualquer outra transferência de dados em uma rede.

A segurança de APIs é a prática de proteger as APIs contra ataques e abusos. Dada a importância das APIs para a internet moderna, a segurança de APIs é um componente fundamental da segurança de aplicativos web. As medidas essenciais de segurança de APIs incluem:

  • Limitação de taxa: clientes que fazem muitas solicitações de API podem desacelerar ou travar a API para outros clientes. A limitação de taxa limita o número de solicitações de API que podem vir de um determinado endpoint de API em um determinado período.
  • Proteção contra DDoS: semelhante à limitação de taxa, a proteção contra negação de serviço distribuída (DDoS) para ataques DDoS, que visam esgotar ou sobrecarregar uma API com uma grande quantidade de solicitações enviadas de uma vez só.
  • Autenticação: é importante autenticar os endpoints de API para garantir que as solicitações da API venham de fontes legítimas e não de invasores. O TLS mútuo (mTLS) é uma das formas mais eficazes de autenticação de APIs.
  • Validação de esquema: se uma solicitação de API não estiver em conformidade com o esquema da API, a API poderá reagir de maneiras inesperadas — revelando dados confidenciais, por exemplo. A validação do esquema permite que uma API elimine essas solicitações.

O API Shield da Cloudflare inclui esses e outros recursos de segurança para proteção contra ameaças de API. Para ler mais sobre segurança de APIs, consulte O que é segurança de APIs?