O que é uma API? (Na prática, não na teoria)
Esqueça a definição acadêmica. Vou te explicar o que é uma API usando exemplos do Facebook e dos Correios, do jeito que faz sentido de verdade.
Tem uma definição técnica pra API que você encontra em qualquer site de tecnologia: "conjunto de rotinas e padrões de programação para acesso a um aplicativo de software ou plataforma baseado na web." API significa Application Programming Interface, ou seja, interface de programação de aplicativos.
Tá, mas isso não ajuda muito quem está começando. Então vamos pro mundo real.
Resumo rápido: API (Application Programming Interface) é uma interface que permite que dois sistemas troquem informações entre si, de forma padronizada, sem que um precise conhecer os detalhes internos do outro.
API é um mini-sistema que faz a ponte
Na prática, uma API é um mini-sistema que dá acesso a um sistema maior. Ela serve de intermediária entre esse sistema grande e qualquer pessoa ou sistema de fora que precise se comunicar com ele.
Vamos usar dois exemplos que deixam isso bem claro.
Exemplo 1: o álbum de fotos do Facebook
O Facebook tem o sistema deles, criado pelo Mark Zuckerberg e a equipe toda. Num certo momento, eles queriam permitir que programadores de fora criassem funcionalidades novas em cima do Facebook.
Uma dessas funcionalidades foi o álbum de fotos. Não era algo que existia nativamente na plataforma. Um programador, que nem era funcionário do Facebook, criou isso durante um hackathon, basicamente uma madrugada de programação regada a café.
Pra esse programador construir o álbum de fotos, ele precisava de informações do Facebook: o nome do usuário logado, o ID desse usuário, dados básicos para associar o álbum à conta certa.
Como ele conseguia essas informações? Acessando a API do Facebook. Esse mini-sistema conectava ao Facebook, buscava os dados do usuário e retornava pra ele. Com isso, dava pra criar a galeria de fotos integrada ao perfil de cada pessoa.
Exemplo 2: a API dos Correios
Os Correios têm uma API pra calcular frete. Você usa ela quando está construindo uma loja virtual, por exemplo.
Funciona assim: você manda pra API o peso do produto, as dimensões, o CEP de origem e o CEP de destino. Esse mini-sistema acessa o sistema grande dos Correios, faz o cálculo e te retorna o resultado: prazo de entrega e valor do frete.
Você não precisa entender como os Correios calculam isso internamente. Você só usa a API, manda as informações que ela pede e recebe o resultado.
Tipos de API mais comuns
Na prática, você vai esbarrar principalmente com estes formatos:
- REST: o mais usado hoje em dia. Organiza tudo em torno de URLs (os "endpoints") e usa os verbos do HTTP (GET, POST, PUT, DELETE) pra dizer o que você quer fazer. É o padrão que você vai encontrar na API dos Correios do exemplo acima.
- GraphQL: em vez de vários endpoints fixos, você manda uma "pergunta" descrevendo exatamente quais dados quer, e a API te devolve só isso, nem mais nem menos.
- SOAP: um padrão mais antigo e mais rígido, ainda comum em sistemas corporativos grandes, como bancos e governo.
API pública x API privada
Nem toda API está aberta pra qualquer pessoa usar:
- API pública: qualquer desenvolvedor pode se cadastrar e consumir, geralmente com um limite de uso gratuito. É o caso da API dos Correios.
- API privada (interna): existe só pra comunicação entre sistemas da própria empresa, como o app mobile conversando com o backend. Não é exposta pra fora.
Resumindo
API é um intermediário. É um mini-sistema que fica entre um sistema grande e quem precisa acessar as funcionalidades ou os dados desse sistema, seja outro sistema ou outro programador.
Sem API, cada sistema ficaria fechado em si mesmo. Com API, sistemas diferentes conseguem conversar entre si de forma organizada e controlada.
No dia a dia como programador, você vai usar APIs o tempo todo, seja consumindo APIs de terceiros ou criando as suas próprias.
Leia também