O que diabos é uma API?
Por que usar APIs em seu código é como brincar com LEGO.
Você pode ter ouvido o termo “API” na maioria dos tutoriais de codificação que você leu. Se você pesquisar “API” no Google, obterá um grande parágrafo sobre como significa “Application Programming Interface” e uma explicação sobre “REST” e “protocolos” e assim por diante, como se isso tornasse tudo mais claro.
Tudo o que você precisa saber sobre APIs é que elas são uma lista de funções que você pode usar para automatizar tarefas e obter dados . Por exemplo, você pode:
- Use a API do Gmail para automatizar a leitura e filtragem de sua caixa de entrada com código
- Use a API do Reddit para criar um bot que converte automaticamente unidades métricas em imperiais com código
- Use a API do Fitbit para obter dados do seu Fitbit e enviá-los para um aplicativo personalizado em seu telefone
Na mesma linha, as APIs fornecem pequenos pedaços de código que permitem que você crie programas. Eles possuem funções como:
getLikeCount()createGoogleSheet()sendEmail()
Como sabemos quais são essas “peças de código”?
Cada API vem com uma documentação que lista todas as maneiras de usá-la, como um catálogo LEGO. Ele mostra tudo o que você pode fazer com uma API, que para a API do Reddit pode ser “postar um comentário” ou “salvar uma postagem”. A documentação geralmente é encontrada online no site de uma empresa, geralmente em alguma página oculta do desenvolvedor. As “ coisas que você pode fazer” são chamadas de “métodos de API”.
Algumas documentações são melhores que outras , mas a documentação é basicamente uma lista de pedaços de código pré-fabricados e funções que você pode usar em seu próprio código .
A API mais fácil: obtendo seu endereço IP
Vejamos uma API que possui apenas uma peça: a API IPify , que informa qual é o seu endereço IP.
Um endereço IP é como um número de telefone ou endereço de correspondência para o seu computador. Ele diz à internet onde encontrá-lo. Os sites também têm seus próprios endereços IP.
Vamos enviar um comando para IPify.org e perguntar qual é o nosso endereço IP. Isso funciona no Mac OS e no Windows.
Abra o Terminal (Mac) ou Prompt de Comando (Windows) e digite o seguinte:
curl 'https://api.ipify.org?format=json'
What the command looks like in Terminal on a MacBook.
{"ip": "68.142.10.250"}
Para verificar se este é o seu IP real, visite WhatIsMyIPAddress.com .
JSON é um dos formatos de dados mais populares para APIs da Web modernas. Ele coloca tudo no {“key”: value}formato para que todos os dados tenham um rótulo. Outras APIs podem usar XML , que tem um <Key>value</Key>formato semelhante, e muitas APIs permitem que você escolha entre as duas.
Esta é a essência de muitas APIs da web. Pedimos a um site alguns dados e ele responde com esses dados. APIs comuns em pesquisas científicas, como as APIs da NASA , USGS e USFDA , funcionam dessa maneira. Podemos obter dados sobre satélites espaciais, a elevação de montanhas nos Estados Unidos e a lista de medicamentos aprovados pela FDA se apenas pedirmos.
Que tal automatizar a atividade do usuário?
E se não quisermos apenas obter dados de um site? Que tal fazer bots ou automatizar nosso dia de trabalho?
É aqui que entram as APIs mais complicadas. Elas ainda envolvem comandos singulares nos quais falamos com um site ou aplicativo e dizemos: “Quero obter esses dados (ou enviar esses dados)”. E o aplicativo responde de acordo. Mas agora estamos juntando vários comandos para realizar atividades mais sofisticadas.
Um exemplo de várias etapas: a API do Reddit
O Reddit é o maior fórum online do mundo. O Reddit publica sua API online e lista tudo o que você pode fazer com a API na barra lateral à esquerda.
Na barra lateral estão os métodos que podemos usar para obter nossa lista de amigos, karma, troféus e muito mais. Cada ação que um usuário pode fazer no site tem seu próprio método de API correspondente.
Se visitarmos a página da API do Reddit e rolar para baixo, há uma seção, links & comments , que mostra todas as interações normais do usuário e seus métodos de API correspondentes. Poderíamos usá-los para criar uma conta de bot ou algo semelhante.
Temos interações diárias do usuário, como comentar ( /api/comment), seguir e salvar postagens . A API do Reddit torna possível fazer isso com código. O /api/prefixo em todos os métodos parece estranho, mas explicaremos isso em um minuto.
A API de pesquisa do Google , por outro lado, possui apenas um método, que é pesquisar :
A API de pesquisa do Google é simples, porque o Google sabe que há apenas uma coisa que os programadores se preocupam em fazer com a pesquisa do Google: pesquisar.
Esse é o objetivo de toda API, resumir todas as atividades e opções do site ou aplicativo normal nesse tipo de função pronta para código “one liner” que podemos usar em Python, JavaScript, Bash, Java, R, etc. .
- Uma API de site deseja que você seja capaz de fazer interações normais com o usuário (fazer login, comentar, pesquisar, excluir coisas) com o mínimo de código possível
- Uma API vestível deseja que você consiga obter dados, enviar um alerta ao usuário ou alterar as configurações do wearable com o mínimo de código possível
Como é o uso de uma API no código
Então, como isso se parece no código? A API do Reddit diz que o método comment é chamado /api/comment. O que isso significa? Não podemos simplesmente inserir /api/commentum arquivo Python e encerrar o dia, certo? Certo.
Existem algumas diferenças entre usar uma API para conversar com um site e usar a API de um dispositivo vestível. Ambos ainda são parecidos com LEGO, pois permitem que você faça coisas complexas com algumas linhas de código, mas o código em si parece bem diferente. Portanto, forneceremos exemplos separados para eles.
Mais aprofundado: APIs da Web em código
Vimos que os métodos da API do Reddit são listados com várias barras:
Isso não se parece com Python, JavaScript ou código. Diz /api/? O que é aquilo?
Na verdade, são partes de links HTTP , exatamente como os que você digita no Chrome ou no Firefox.
Por que links da web embora? Nós os colocamos diretamente em nosso código? Sim, e por um bom motivo.
Quando usamos uma API da Web, como a do Reddit, do Gmail ou mesmo das APIs do NIH ou da NASA , nosso código está basicamente conversando com um site. Sites usam links/that/look/like/thispara separar suas páginas e funções. O Google está em google.com, mas seus resultados de pesquisa estão em google.com/search.
Vamos acabar colocando esse endpoint em nosso código em algum lugar assim:
google_search_api = "https://www.googleapis.com/customsearch/"
Agora, o código não está realmente falando com um site, mas com um servidor (como um site sem cabeça), mas eles organizam as coisas da mesma forma com /slashes/, no que diz respeito às APIs. Assim como quando você publica um blog como um usuário regular em um site da página website.com/post, seu código pode se comunicar com o terminal de postagem de blog do servidor API em api.website.com/postou website.com/api/postou algo semelhante.
Pense assim: quando você verifica sua caixa de entrada do Gmail em seu laptop ou telefone, seu navegador:
- Alcance através da Internet para
gmail.com - Diga a
gmail.com, “Posso obter a página da Web em/mail/inbox?” - Em seguida, o Gmail envia a página da Web da sua caixa de entrada de volta para o navegador, para que você possa vê-la.
- Alcançar
gmail.googleapis.com - Peça
gmail.googleapis.comsua caixa de entrada de e-mail - Em seguida, a API do Gmail enviará apenas os dados em vez de todo o site
Dados puros são amigáveis ao código, e é para isso que as APIs são feitas.
Exemplo: Obtendo Medicamentos da API openFDA
Aqui está um pequeno exemplo Python para consultar a API openFDA do USFDA , que lista todos os medicamentos aprovados pela FDA:
# import an HTTP library
import requests
# Tell "requests" to request data from the openFDA "Drugs" endpoint
drugs_http_endpoint = "https://api.fda.gov/drug/label.json?limit=100"
drugs = requests.get(drugs_http_endpoint)
# Print all the data that we got from USFDA about drugs
print(drugs.json())
Observação: o exemplo acima usa a popular requests biblioteca HTTP para Python.
E as APIs para Bluetooth e wearables?
Usar a API de um dispositivo vestível (como Fitbit ou Apple Watch) é um pouco diferente de usar a API de um site, mas eles são documentados da mesma forma. Por exemplo, em vez de um método de “comentário” , uma API vestível pode ter os seguintes métodos:
- obter frequência cardíaca
- obter dados de movimento (do acelerômetro e giroscópio)
- enviar um alerta ao usuário
Exemplo de wearable: a API do Fitbit
Em vez de consultar algum site para obter dados, você pode querer codificar para um dispositivo específico, como o Fitbit .
Existem várias partes da API do Fitbit . Ele ainda tem sua própria API da Web.
Vejamos uma das partes da API do dispositivo .
Na página da API do dispositivo , a barra lateral esquerda mostra uma lista de todas as partes da API com as quais podemos interagir.
Cada uma dessas categorias maiores é uma espécie de coleção de peças LEGO , cujas peças podemos ler mais sobre e usar em nosso próprio código. As peças de LEGO são coisas como:
- ler ou acertar o relógio
- lendo o acelerômetro (parte do rastreador de movimento)
- leitura do monitor de frequência cardíaca , etc.
Há muitas informações, mas a página tem um script de exemplo curto e, em seguida, lista várias peças de LEGO relacionadas à frequência cardíaca que podemos usar em nosso próprio código:
activated(informa se o sensor de frequência cardíaca está ligado ou não)heartRate(nos informa a frequência cardíaca atual)onactivate(uma função que podemos usar para dizer ao Fitbit o que fazer assim que o sensor de frequência cardíaca for ativado)
Em pseudocódigo, o acima significa:
import HeartRateSensor code from Fitbit's API
if HeartRateSensor was imported {
hrm = the HeartRateSensor
Listen for heart rate sensor to send data, then print it.
Start the heart rate sensor (which will then start the above "Listen" code)
}
Se você ficar preso ao usar uma API, a empresa que a criou normalmente terá uma documentação on-line que você pode pesquisar no Google. (Exemplo: pesquisar “API Fitbit” mostrará a API Fitbit real como o principal resultado da pesquisa.) Caso contrário, você pode entrar em contato diretamente com a empresa para perguntar se eles têm a documentação da API que podem enviar.
Em alguns casos, a documentação da API pode ser realmente decepcionante , levando à frustração da comunidade de desenvolvedores. Mas essa é uma oportunidade de contribuir e preencher as lacunas ou fazer seu próprio produto melhor.
Resumo
Os engenheiros escrevem APIs na esperança de que você desenvolva e use seus aplicativos, conjuntos de dados e vestíveis. Agora que você entende as APIs, confira essas APIs populares para começar . Na maioria das vezes, sua tecnologia e aplicativos favoritos têm APIs que você pode usar em seu próximo projeto.
Se você tiver alguma dúvida ou comentário, envie-nos um e-mail para [email protected] ou uma mensagem no Instagram (@protobioengineering) . Obrigado por ler.
Links Relacionados
- GitHub para biólogos
- API Dataverse: Software e dados de pesquisa de código aberto
- Postman: Crie e teste APIs





































![O que é uma lista vinculada, afinal? [Parte 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)