Se você é novo nesse negócio de backend, já deve ter ouvido muito falar de API. E junto dela, algumas palavras chaves bonitinhas como RPC, REST, Microserviços e por aí vai. Mas a pergunta real é: Você sabe o que é uma API? Saberia dizer o significado da sigla e quando identificar uma API quando vir uma? É sobre isso que esse artigo curto e rápido vai tratar.
API é um acrônimo
Exatamente! Cada uma das letras de API tem um significado específico: Application Programming Interface. Esse poderoso padrão de implementação é o que tem permitido uma internet mais integrada, o reaproveitamento de serviços e principalmente a integração de dados entre setores diferentes de uma mesma empresa e até mesmo de parceiras.
Antigamente, em 1900 e disquete de 5 1/4, quando precisávamos fazer a integração entre programas, as pessoas precisavam construir rotinas que escreviam dados dentro de um arquivo texto. Esse arquivo tinha que ser salvo em um disquete (ou outro dispositivo) e levado até o computador que tinha o software de destino. Essas mídias trafegavam pela cidade (e até países) dentro de malotes do correio! Imagine o quanto essa comunicação era lenta e sujeita a falhas!
Com o surgimento da internet, outros padrões de integração foram surgindo e se amadurecendo. E para falar desses padrões, já ouvi termos como “barramento” (termo herdado do mundo do hardware) e coisa do gênero. Mas a comunidade decidiu que API seria um termo mais apropriado. Afinal, se você abstrair bem, a API nada mais é do que a interface pública de um módulo.
O que é uma interface?
Quem é do mundo de orientação a objetos, já deve pensar nas famosas Interfaces
, um statement de código que simplesmente oferece um conjunto de assinatura de propriedades e métodos (geralmente) sem nenhuma implementação. Mas não é dessa interface especificamente que estamos falando.
Quando falamos em interface, na área de tecnologia, nos referimos ao meio pelo qual os usuários irão utilizar um determinado componente. A Fluent Design, por exemplo, é a interface do sistema operacional Windows 11. O seu computador possui interfaces de entrada e saída também (as portas USB, jacks de fone de ouvido, conectores RJ45, barramentos de memória, barramentos PCI e por aí vai).
O nome Interface
, portanto, é a descrição de como outros sistemas podem interagir com um sistema. E por isso mesmo classes concretas possuem uma interface: a sua própria lista de métodos públicos – mesmo que ela esteja implementando ou não uma interface. Desta forma, uma API nada mais é do que a lista pública de métodos, cujo objetivo é permitir a integração entre sistemas.
Geralmente as pessoas confundem os conceitos de API e REST. API, como descrevemos, é a lista de métodos. REST, por sua vez, é um protocolo de comunicação; um conjunto de regras estabelecidas para que dois sistemas possam trocar mensagens (chamadas de métodos ou “recursos”, como chama o REST). Outros protocolos seriam SOAP, RPC, gRPC, COM, DCOM e etc.
Quais os tipos de API que existem?
Fazer uma taxidermia dos tipos de API seria desnecessariamente polêmico. Cada empresa pode fazer a sua própria classificação para os seus próprios fins. Eu particularmente gosto da classificação oferecida pela IBM, onde ela elenca os tipos: Aberta, Parceiros, Interna e Composta.
O que é uma API Aberta?
API Aberta é aquela que está disponível para toda a internet e não requer nenhum tipo de autenticação. Qualquer pessoa ou organização que fizer uma requisição, terá uma resposta a altura. Em geral, essas APIs possuem uma camada de acesso bem definida, permitindo uma quantidade máxima de requisições diárias de um mesmo endereço IP.
O que é uma API de Parceiros?
O escopo de alcance dessas APIs é um pouco mais reduzido. Embora estejam abertas para a internet, para acessá-las é necessário algum nível de autenticação. Empresas disponibilizam essas APIs para que os seus parceiros (clientes, fornecedores e outros interessados) possam interagir com um domínio específico da empresa.
O que é uma API interna?
Especialmente em um contexto de micro serviços, você encontrará várias APIs internas. Elas estão completamente inacessíveis pela internet. A única razão da sua existência possibilitar a comunicação entre os diversos domínios/contextos internos de uma solução maior. Algumas pessoas defendem que essas APIs não deveriam demandar autenticação, uma vez que um atacante teria que entrar no cluster para poder fazer uma requisição. Já outras acreditam que, mesmo sendo totalmente internas, ainda precisam de autenticação para garantir uma camada a mais de segurança.
O que é uma API Composta?
Este tipo diferente dos demais, dado que uma vez que os outros tipos estão focados na acessibilidade da API, o composite é baseado no papel de uma API. As API Composite funcionam como um facade, encapsulando aquilo que poderia ser um amontoado de chamadas para outras APIs. Esse padrão é muito comum em domínios de alta complexidade e também na implementação do padrão arquitetural Backend For Frontend.
Documentação?
Ok, mas como eu sei quais métodos estão disponíveis para serem acessados? Quais são as restrições, tipos, retornos esperados? A única forma disso é ter em mãos uma documentação. E documentar APIs é o tema do nosso próximo artigo!
2 thoughts on “API do jeito certo – O que é uma API?”