Introdução às APIs: Explorando o Coração das Interações Digitais
Muitas pessoas, seja trabalhando em tecnologia ou não, têm uma compreensão vaga ou imprecisa do que realmente significa o termo API, apesar de sua crescente ubiquidade em conversas sobre inovação e desenvolvimento de software.
As APIs, ou Interfaces de Programação de Aplicações, estão no coração da revolução digital que permeia todos os aspectos da nossa vida moderna. Tecnicamente, API é a sigla para Interface de Programação de Aplicações. Mas o que realmente significa isso e qual é o seu impacto no mundo da tecnologia e além?
Para entender as APIs, precisamos primeiro compreender o básico da comunicação na web. Quando você visita uma página da web, seu navegador envia uma solicitação a um servidor remoto, que por sua vez responde com o código HTML necessário para renderizar a página. Esse processo é transparente para o usuário final, mas é fundamental para o funcionamento da internet.
Em essência, uma API é um intermediário que permite que dois aplicativos se comuniquem entre si. As APIs são projetadas para serem utilizadas por outros softwares e não diretamente pelos usuários finais. Por exemplo, quando você usa um aplicativo de clima no seu telefone, ele está se comunicando com uma API que fornece dados meteorológicos.
Os servidores na WEB, mas o que eles servem?
Quando penso na web, imagino uma vasta rede de servidores interconectados.
Cada página na internet está armazenada em algum lugar em um servidor remoto. Um servidor remoto não é algo tão místico — na verdade, é apenas um componente de um computador localizado em outro lugar (remotamente) otimizado para processar solicitações.
Para ter uma ideia, você pode configurar um servidor no seu laptop que seja capaz de hospedar um site inteiro (na verdade, os engenheiros costumam usar servidores locais para desenvolver sites antes de lançá-los ao público).
Quando você digita www.facebook.com no seu navegador, uma solicitação é enviada ao servidor remoto do Facebook. Quando seu navegador recebe a resposta, ele interpreta o código e exibe a página.
Para o navegador, também conhecido como cliente, o servidor do Facebook é uma API. Isso significa que toda vez que você visita uma página na web, está interagindo com a API de algum servidor remoto.
Uma API não é a mesma coisa que um servidor remoto — em vez disso, é a parte do servidor que recebe solicitações e envia respostas.
API servindo os clientes
Você provavelmente já ouviu falar de empresas que fornecem pacotes de APIs como produtos. Por exemplo, a Weather Underground vende acesso à sua API de dados meteorológicos.
Cenário de exemplo: o site da sua pequena empresa tem um formulário para agendar reuniões com clientes. Você quer permitir que os clientes criem automaticamente um evento no Google Agenda com os detalhes da reunião.
Uso da API: a ideia é fazer com que o servidor do seu site se comunique diretamente com o servidor do Google por meio de uma solicitação para criar um evento com os detalhes fornecidos. Em seguida, seu servidor receberá uma resposta do Google, processará essa resposta e enviará as informações relevantes para o navegador, como uma mensagem de confirmação para o usuário.
Como alternativa, seu navegador pode enviar diretamente uma solicitação de API para o servidor do Google, sem passar pelo seu servidor.
Qual é a diferença entre a API do Google Calendar e a API de qualquer outro servidor remoto?
Tecnicamente, a diferença está no formato das solicitações e respostas.
Para renderizar uma página da web, seu navegador espera uma resposta em HTML, que contém o código de apresentação. Em contraste, uma chamada para a API do Google Calendar retorna apenas dados, geralmente em um formato como JSON.
Se o servidor do seu site estiver fazendo uma solicitação de API, ele atua como cliente (assim como o navegador é o cliente quando você acessa um site).
Do ponto de vista dos usuários, as APIs permitem que eles realizem ações sem sair do seu site.
A maioria dos sites modernos utiliza pelo menos algumas APIs de terceiros.
Muitos problemas já têm soluções de terceiros, seja na forma de bibliotecas ou serviços. Geralmente, é mais fácil e confiável usar uma solução existente.
Não é incomum que equipes de desenvolvimento dividam suas aplicações em vários servidores que se comunicam entre si por meio de APIs. Esses servidores auxiliares são frequentemente chamados de microsserviços.
Em resumo, quando uma empresa oferece uma API aos seus clientes, significa que ela criou um conjunto de URLs dedicados que retornam respostas de dados puros. Essas respostas não incluem o tipo de carga de apresentação que você esperaria de uma interface gráfica de usuário, como em um site.
É possível fazer essas solicitações com o seu navegador? Em geral, sim. Como a transmissão em HTTP de fato acontece no formato de texto, seu navegador sempre fará o melhor possível para exibir a resposta.
Por exemplo, você pode acessar a API do GitHub diretamente com seu navegador, mesmo sem precisar de um token de acesso. Aqui está a resposta em JSON que você recebe quando visita a rota de API de um usuário do GitHub em seu navegador (https://api.github.com/users/petrgazarov):
{ "login": "petrgazarov", "id": 5581195, "avatar_url": "https://avatars.githubusercontent.com/u/5581195?v=3", "gravatar_id": "", "url": "https://api.github.com/users/petrgazarov", "html_url": "https://github.com/petrgazarov", "followers_url": "https://api.github.com/users/petrgazarov/followers", "following_url": "https://api.github.com/users/petrgazarov/following{/other_user}", "gists_url": "https://api.github.com/users/petrgazarov/gists{/gist_id}", "starred_url": "https://api.github.com/users/petrgazarov/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/petrgazarov/subscriptions", "organizations_url": "https://api.github.com/users/petrgazarov/orgs", "repos_url": "https://api.github.com/users/petrgazarov/repos", "events_url": "https://api.github.com/users/petrgazarov/events{/privacy}", "received_events_url": "https://api.github.com/users/petrgazarov/received_events", "type": "User", "site_admin": false, "name": "Petr Gazarov", "company": "PolicyGenius", "blog": "http://petrgazarov.com/", "location": "NYC", "email": "petrgazarov@gmail.com", "hireable": null, "bio": null, "public_repos": 23, "public_gists": 0, "followers": 7, "following": 14, "created_at": "2013-10-01T00:33:23Z", "updated_at": "2016-08-02T05:44:01Z"}
O navegador parece que conseguiu exibir uma resposta em JSON sem problemas. Uma resposta em JSON assim está pronta para ser usada por seu código. É fácil extrair dados desse texto. Assim, você pode fazer o que quiser dos dados.
Exemplos de APIs
Para concluir, vamos examinar mais alguns exemplos de APIs.
"Aplicação" pode ter muitos significados. Aqui estão algumas definições possíveis no contexto de APIs:
- Um software com uma função específica.
- Todo um servidor, uma aplicação inteira ou apenas uma pequena parte de uma aplicação.
- Basicamente, qualquer software que possa ser distinguido de seu ambiente pode ser considerado o "A" em API e provavelmente terá algum tipo de API.
Suponha que você está usando uma biblioteca de terceiros em seu código. Uma vez incorporada, a biblioteca se torna parte da sua aplicação como um todo. Por ser um software específico, a biblioteca provavelmente terá uma API que permite sua interação com o restante do código.
Outro exemplo é o Design Orientado a Objetos, onde o código é organizado em objetos. Sua aplicação pode ter centenas de objetos definidos que interagem entre si.
Cada objeto tem uma API — um conjunto de métodos públicos e propriedades usados para interagir com outros objetos na aplicação.
Um objeto também pode ter uma lógica interna privada, oculta do mundo exterior, e que não faz parte da API.
Com base no que discutimos neste artigo, espero que você tenha aprendido um significado mais amplo para API e compreendido os usos mais comuns do termo atualmente.
Este artigo foi gerado por IA e editado/formatado por mim.
Imagens por Lexica.ART