O que é uma "API" e como você usa uma?
Andrey Suslov / Shutterstock
Uma API ” é o middleware que fica entre dois aplicativos e permite que eles se comuniquem usando regras predefinidas. Na prática, as APIs geralmente são usadas para permitir que aplicativos do lado do cliente acessem um banco de dados protegido.
O que as APIs fazem?
Em um nível alto, as APIs simplesmente estabelecem a comunicação entre dois aplicativos. Eles não podem se comunicar diretamente, pois não têm acesso ao código um do outro, então eles precisam passar um fio entre eles e enviar sinais pela linha. A API define como esses sinais devem ser enviados. Quase todos os aplicativos em execução no seu computador usam algum tipo de API para conversar com milhares de outras coisas.
Na prática, o termo "API" ” é geralmente usado para se referir a APIs baseadas na Web que formam o link entre servidor e cliente ou entre servidor e um serviço de back-end. Essas APIs atuam como o ponto de acesso para qualquer serviço por trás delas.
Por exemplo, imagine que você tenha um aplicativo do lado do cliente que precise conversar com um servidor com um banco de dados. Obviamente, você não pode conceder ao cliente acesso total ao banco de dados, pois isso apresenta uma série de problemas. Primeiro de tudo, provavelmente é o pior erro de segurança que você pode cometer, mas além disso, também quebra todo o modelo cliente-servidor. O cliente não precisa se preocupar em conversar com um banco de dados ou em armazenar dados; deve se comunicar com o servidor e permitir que o servidor faça o trabalho pesado.
Em vez de permitir ao cliente acesso total, você pode criar outro serviço que conversará com o banco de dados em nome do cliente. Este é o aplicativo da API e fica diretamente em frente ao banco de dados (ou qualquer outro serviço por trás dele).
O cliente envia solicitações para o aplicativo API, geralmente via HTTP, usando solicitações GET e POST. Pode ser um URL no seu servidor, como "api. yoursite. com". ” Se o cliente quisesse pesquisar no banco de dados com uma consulta específica, a API solicitaria que o banco de dados realizasse a pesquisa e retornaria os resultados. Normalmente, as APIs se comunicam por JSON, que retorna os resultados como um objeto com tipos estritamente definidos, por exemplo:
{"nome": "MyAPI", "search_results": [...]}
Esse é outro benefício das APIs que padronizam a estrutura dos dados. Sua API sempre deve retornar o mesmo formato e tipo de dados todas as vezes, o que facilita a utilização em diferentes aplicativos. A maioria das grandes empresas de tecnologia possui APIs disponíveis publicamente e documentação extensa sobre a estrutura da API e como ela é usada.
Como uso uma API?
APIs são bastante padronizadas. Eles quase sempre estarão acessíveis por HTTP e geralmente retornam dados JSON, o que significa que qualquer linguagem de programação que possa fazer solicitações HTTP e decodificar JSON pode conversar com uma API e obter dados dela. Mesmo algo tão simples como curl ou wget que pode baixar conteúdo baseado na Web pode acessar uma API.Você pode usar APIs publicamente disponíveis em qualquer aplicativo que desejar, embora às vezes elas sejam limitadas para impedir abusos. Por exemplo, o KeyCDN executa uma API para obter informações de localização de um endereço de API, mas você está limitado a três solicitações por segundo. Você pode usar isso em qualquer aplicativo, fazendo uma solicitação HTTP GET para o terminal da API com o endereço IP passado como um parâmetro de URL. Por exemplo:
https://tools. keycdn. com/geo. json?host=
Retornaria algo como:
{"status": "success", "description": "Dados recebidos com sucesso.", "data": {"geo": {"host": "173.79.254.254", "ip": "173.79.254.254", "rdns": "pool-173-79-254-254. washdc. fios. verizon. net", "asn": 701, "isp": "MCI Communications Services, Inc. d / b / a Verizon Business "," country_name ":" Estados Unidos "," country_code ":" US "," region_name ":" Virginia "," region_code ":" VA "," city ":" Alexandria "," postal_code " : "22309", "continent_name": "América do Norte", "continent_code": "NA", "latitude": 38,719, "longitude": -77,1067, "metro_code": 511, "fuso horário": "America / New_York" , "datetime": "22/08/2019 às 17:30:48"}}}
Você pode armazenar esse resultado em uma variável chamada resposta. Então, se você quiser saber o CEP do endereço, poderá acessá-lo usando response. data. geo. postal_code.
Existem bibliotecas para a maioria dos idiomas que facilitam esse processo, e muitos idiomas também têm ferramentas incorporadas. Mostraremos alguns comuns, mas uma pesquisa rápida pelo "Pedido HTTP ___" ” deve exibir resultados para o idioma com o qual você está trabalhando.
JavaScript
JavaScript pode fazer solicitações HTTP imediatamente, usando o objeto XMLHttpRequest ():
const Http = novo XMLHttpRequest (); const url = 'https: //api. github. com/'; Http. open ("GET", url); Http. send (); Http. onreadystatechange = (e) = > {console. log (Http. responseText)}
No entanto, essa sintaxe é bastante desajeitada, por isso é comumente usada com outras bibliotecas, a menos que você precise estritamente do vanilla JS. Por exemplo, o jQuery possui o método ajax que cuida disso:
$ . ajax ('https://api. github. com/', {dataType: 'json', success: function (dados, status, xhr) {...}});
E existe a biblioteca axios, que lida com promessas:
axios. get ('https://api. github. com/') . then ((data) = > {console. log (data);})
Em qualquer caso, os objetos JSON podem desserializar diretamente para objetos JavaScript usando JSON. parse (), o que permitirá que você armazene os resultados para uso em outros lugares.
PHP
O PHP pode fazer solicitações GET nativamente usando a função file_get_contents, que pode ser usada junto com json_decode para ler o resultado da API em uma variável:
$ json = file_get_contents ('https://api. github. com/'); $ obj = json_decode ($ json);
Se você quiser fazer uma solicitação POST ou precisar de configuração extra, poderá criar um contexto especial para file_get_contents usando stream_context_create:
$ url = 'https: //api. github. com/'; $ data = 'alguma coisa'; $ options = array ('http' = > array ('header' = > "Tipo de conteúdo: application / x-www-form-urlencoded \ r \ n", 'método' = > 'POST', ' conteúdo '= > http_build_query ($ data))); $ context = stream_context_create ($ opções); $ result = file_get_contents ($ url, false, $ context); if ($ result === FALSE) {// erro}
Python
Python não tem uma ótima maneira de fazer isso de forma nativa, então você terá que instalar a biblioteca de solicitações do pip. Depois disso, você pode fazer solicitações da seguinte forma:
solicitações de importação r = orders. get ("https://api. github. com/")
Isso retorna um objeto que representa toda a transação HTTP, portanto, para obter o conteúdo real, você precisará usar o r. content. Você provavelmente também precisará da biblioteca JSON para decodificar a resposta em um objeto legível em Python.
importar solicitações de importação do json r = orders. get ("https://api. github. com/") decodificado = json. loads (r. content)
Como faço para criar minha própria API da Web?
Se você possui alguns dados que gostaria de disponibilizar, pode colocar uma API na frente para acessá-la pela Internet.
Para fazer isso, você precisará criar um servidor de API. O único requisito é que ele possa escutar por HTTP e responder a solicitações, para que você possa usar qualquer linguagem de programação que desejar. Você provavelmente também precisará de uma biblioteca para conectar-se ao banco de dados de sua escolha a partir desse idioma, e também poderá implementar algum tipo de autenticação como o OAuth 2.0 para acompanhar os usuários e suas permissões.
Express é uma biblioteca Node. JS comumente usada para criar APIs da Web simples usando JavaScript. O servidor Express escuta por HTTP e pode encaminhar rotas diferentes para funções de manipulador. Você pode usar isso junto a um cliente MySQL do Node (ou qualquer outro banco de dados) para criar APIs ricas em dados. Para o Python, você também precisará de uma estrutura da Web como o Flask que possa ouvir e responder a solicitações.
Via: How to Geek
Nenhum comentário