Um endpoint de API é uma das extremidades de uma conexão de API, onde são recebidas as chamadas de API.
Após ler este artigo, você será capaz de:
Conteúdo relacionado
O que é segurança de APIs?
O que é uma chamada de API?
Top 10 de Segurança para APIs do OWASP
O que é uma API?
Segurança de aplicativos web?
Assine o theNET, uma recapitulação mensal feita pela Cloudflare dos insights mais populares da internet.
Copiar o link do artigo
Uma interface de programação de aplicativos (API) é a forma pela qual um aplicativo solicita um serviço de outro aplicativo. As APIs permitem que os desenvolvedores evitem recriar recursos de aplicativos que já existem. Um endpoint da API é o local em que essas solicitações (conhecidas como chamadas de API) são atendidas.
Se a Alice e o Bob estão conversando pelo telefone, as palavras da Alice se deslocam até o Bob e vice-versa. A Alice direciona suas palavras para o "endpoint" da conversa: o Bob.
Alice: "Olá, Bob" ----------> Bob
Da mesma forma, a integração de uma API é como uma conversa. Só que em vez de dizer "Olá", uma API diz algo como "Preciso de alguns dados" para o servidor da API, fazendo uma chamada de API. O endpoint do servidor da API então responde "Aqui estão os dados" — uma resposta da API. E os endpoints da API não são entidades físicas como a Alice e o Bob: eles existem no software, não no hardware.
As APIs são hospedadas em um ou mais servidores, que são computadores especializados que armazenam dados e executam programas de software. Cada servidor "distribui" dados, conteúdo e funcionalidade de software pela internet para outros dispositivos. O endpoint da API quase sempre é hospedado em um servidor.
Do outro lado da conexão de API fica o cliente de API: a entidade que solicita serviços de API. Alguns chamam isso de "usuário" da API, embora a maior parte das chamadas de API seja automatizada.
Para que uma API possa ser utilizada, deve ter uma documentação. A documentação indica, entre outras coisas, que tipos de solicitações a API irá aceitar, o que a API pode fazer, como ela formata suas respostas e quais são seus endpoints. Os desenvolvedores podem revisar a documentação de uma API e incorporar essas informações à medida que criam seus aplicativos.
A título de exemplo, veja a documentação da API da Cloudflare, incluindo o que são endpoints, aqui: https://api.cloudflare.com/
Localizadores uniformes de recursos (URLs) são usados na web para várias finalidades, inclusive para a localização de páginas web. Por exemplo, o URL para a versão em inglês norte-americano desta página web é https://www.cloudflare.com/learning/security/api/what-is-api-endpoint/. Quando um usuário digita esse URL em seu navegador, este sabe onde encontrar essa página web e pode carregá-la.
Os URLs também indicam os endpoints da API. Quando a Alice e o Bob conversam pelo telefone, a Alice faz uma chamada para o Bob usando o número de telefone do Bob. De forma semelhante, o URL do endpoint da API é como um número de telefone que permite fazer chamadas de API.
Um servidor de API pode hospedar um ou vários endpoints da API, o que significa que esse servidor aceitará e processará chamadas direcionadas aos URLs desses endpoints. Clientes de APIs também precisam ter um URL para que o servidor de API saiba para onde enviar suas respostas, da mesma forma que o Bob e a Alice precisam ter um número de telefone para que as chamadas telefônicas entre eles funcionem. Os desenvolvedores definem esse URL quando estão criando seus aplicativos.
Um URL sempre inclui o protocolo da camada de aplicação, como o HTTP, usado para alcançá-lo. A maioria das APIs da web utiliza HTTP, de modo que este fica incluído no URL dos endpoints da API.
Uma API desenvolvida corretamente não aceita chamadas de API de qualquer um. Isso deixaria o servidor de API aberto para receber dados maliciosos dos invasores. Além disso, o uso da API normalmente custa dinheiro, então, nesses casos, o servidor de API precisa verificar se as chamadas de API são realizadas por um cliente pagante.
É por essas razões que o servidor de API precisa verificar se o cliente de API, que realizou a chamada, é conhecido e confiável. Ele faz isso por meio da autenticação.
Autenticação é o processo de verificar a identidade. Assim como existem várias maneiras de um usuário humano ser autenticado em um sistema, existem quatro maneiras principais pelas quais os endpoints da API podem exigir a autenticação:
Em muitos casos, o TLS mútuo é o método de autenticação mais eficaz. Por um lado, ele autentica tanto o endpoint como o cliente, não apenas o cliente, e dessa forma os dois lados podem ter certeza de que estão recebendo dados de uma fonte legítima. Ele também utiliza chaves privadas, que nunca são compartilhadas entre os endpoints e que, portanto, não podem ser interceptadas em trânsito. Por outro, as chaves, senhas e tokens da API podem ser copiados ou roubados.
O API Shield da Cloudflare utiliza o TLS mútuo para autenticar os clientes e endpoints da API, ajudando a proteger os dois lados contra um ataque.] O API Shield também oferece vários outros recursos de segurança para APIs, incluindo o Rate Limiting e a prevenção de perda de dados (DLP) — saiba mais sobre o API Shield.