Criar APIs para você e para mim
Objetivos de aprendizagem
Após concluir esta unidade, você estará apto a:
- Definir e descrever uma API.
- Nomear usos comuns de APIs.
A tecnologia tornou-se parte de todos os aspectos das nossas vidas e a conectividade tornou-se um pilar da Quarta Revolução Industrial. Estamos todos ligados de alguma forma.
- Por meio de nossos celulares quando procuramos avaliações de restaurantes próximos no Yelp.
- Por meio de sites de reservas de viagens com acesso a todos os voos e hotéis disponíveis.
- Até mesmo eletrodomésticos são capazes de reabastecer suprimentos; por exemplo, encomendar pipoca de micro-ondas diretamente de um forno de micro-ondas AmazonBasics compatível com Alexa.
Você já se perguntou como isso funciona?
Durante décadas, a maioria dos programas de computador foi criada e distribuída com um tipo de usuário em mente: um humano. Não importa a sucessão de eventos que tenha ocorrido nos bastidores do software, um usuário humano estava tradicionalmente no final dela. Por conta disso, o usuário só era capaz de acessar os dados por meio de uma interface de usuário (IU).
Mas e se esses mesmos dados pudessem ser facilmente acessados por outro software? Por exemplo, seu smartwatch compartilha o número de etapas que você está executando com um serviço de gráficos de desempenho na Web ou com o sistema de registros eletrônicos de saúde (EHR) usado pelo médico ao qual você pediu ajuda para melhorar sua forma física. Nesse caso, as preocupações em relação à IU são muito diferentes. Afinal, o software não tem olhos, emoções ou intuição; ele não precisa de uma interface gráfica de usuário exagerada. No entanto, da mesma forma que uma IU é feita sob medida para humanos, o software precisa de uma interface que facilite a obtenção de dados ou funcionalidades de outros softwares.
É aqui que entram as interfaces de programação de aplicativos, também conhecidas como APIs. Quando aplicativos, dados ou dispositivos compartilham dados ou funcionalidades em algum contexto criado com uma finalidade (como visualizar dados de condicionamento físico), as APIs ficam nos bastidores e são responsáveis pela conectividade que ocorre nesse contexto.
O que é uma API?
Uma API é equivalente a uma interface de usuário, exceto que é projetada para software em vez de humanos. É por isso que as APIs são frequentemente descritas na mídia como tecnologia que permite que os aplicativos falem uns com os outros.
O cliente envia uma solicitação de informação ou funcionalidade específica para outro sistema. Esse sistema retorna os dados ou a funcionalidade em uma resposta. Para enviar ou receber dados, há uma expectativa de que estejam em um formato específico que ambos possam entender. Esse formato geralmente é muito sensível ao contexto que ele atende. Vamos analisar mais detalhadamente.
A dona de uma academia local quer conectar o seu novo equipamento de ginástica no novo endereço da academia. Ela sabe que, como vive na América do Norte, precisa de uma tomada americana para isso. Ela também sabe que as tomadas de parede fornecem 120 volts de energia. Essas diretrizes conhecidas essencialmente definem uma expectativa para qualquer dispositivo que precise ser conectado à parede.
As APIs funcionam de uma forma semelhante.
APIs: a corrente elétrica entre softwares
Mas o que é que as tomadas de parede têm a ver com APIs, se é que têm?
Pense nisso desta forma:
- A corrente que vem da parede é um serviço. Ela pode parar e começar a qualquer momento.
- A esteira conectada à parede utiliza energia para funcionar.
- Como a esteira não tem sua própria fonte de energia, ela terceiriza a energia necessária do provedor de serviços, por exemplo, de moinhos de vento ou energia solar.
Embora as tomadas elétricas sejam diferentes dependendo de onde você está no mundo, elas têm padrões de encaixe previsíveis, e as tomadas conectadas a dispositivos como esteiras foram projetadas para atender a esses padrões.
Todas essas especificações essencialmente definem as expectativas de qualquer dispositivo que queira usar o serviço. As tomadas e as fontes de alimentação estão em conformidade com os padrões e as especificações (como 120 volts) do serviço. O mesmo se aplica às APIs.
Como as tomadas elétricas padronizadas, as APIs oferecem padrões semelhantes que facilitam a troca de dados e funcionalidades entre outros softwares. Qualquer software que precise enviar ou receber dados deve aderir a essas especificações para fazer uma solicitação. As APIs possibilitam a conexão de processos existentes (como a experiência do cliente) a novos dados e funcionalidades.