Como Usar Uma API Em Python
by Felipe Esteves in Circuits > Computers
761 Views, 0 Favorites, 0 Comments
Como Usar Uma API Em Python
Esse projeto tem o objetivo de apresentar:
- o que é uma API;
- O que é um arquivo .JSON;
- O que é uma biblioteca e como usá-la;
- Programação.
Supplies
- Python 3;
- Pip (Integrado junto a instalação do Python);
- Python requests (Ensinado a baixar na sessão de bibliotecas do Python);
- Conhecimento básico de Python.
Caso não tenha Python no seu computador clique aqui para baixar
O Que É Uma API
API significa Application Programming Interface (interface de programação de aplicativos), ou seja, ela é uma interface para auxiliar na comunicação entre dois ou mais aplicativos.
Por exemplo: o aplicativo do clima precisa comunicar com a base de dados para mostrar a temperatura, pois não é capaz de medir por si só, então precisa usar uma API para efetuar esta comunicação
Para saber mais clique aqui (Wikipédia).
Bibliotecas Do Python
Para facilitar a execução e a complexidade do código, utilizando bibliotecas. Elas vão intuitivamente acelerar o desenvolvimento.
Bibliotecas usadas : Request e Json
A biblioteca json é do repositório padrão do python, porém request não é, então é necessário instalá-la, para instalar uma biblioteca primeiro precisamos utilizar o prompt de comando do seu computador. Digite o comando "pip install" e complemente com o nome de sua biblioteca.
Ficará assim:
pip intall requests
Arquivo JSON
JSON é um tipo de arquivo para troca de informação, significa JavaScript Object Notation, mas é possível usá-lo em outras linguagens de programação. Ele tem uma sintaxe muito simples baseando-se em pares de nome e valor seguido de vírgula, este valor pode ser um texto (string), um número (int para inteiros e float para fração) ou um valor booleano (bool, verdadeiro ou falso):
{ "string" : "Texto é entre aspas", "Número" : 18, "float" : 1.62, "booleano" : true }
Para melhorar na organização é possível separar as informações em objetos que funcionam como caixas para guardar os dados, objetos podem possuir dados de mesmo nome. Eles são estruturados da seguinte forma:
{ "Objeto1":{ "dado1" : "texto", "dado2" : "texto" }, "Objeto2" : { "dado1" : "texto", "dado2" : "texto" } }
Para saber mais clique aqui.(O site deles está disponível em inglês.)
Get Requests O Que São
A biblioteca request, como o nome diz, é aquela que solicita as informações da API quando requisitado pelo código, este envia ao servidor um requerimento GET e é atendido com os dados de sua API (os formatos mais usados para esta resposta são HTML, JSON, XML entre outros). Para utilizar essa ferramenta é necessário que instale a biblioteca no prompt de comando com o seguinte código :
pip install requests
Com tudo pronto, implemente na programação da seguinte forma :
import requests resposta = requests.get('https://siteficticio') print(resposta)
Desta maneira será solicitado ao site que envie as informações da API.
A resposta será apenas o código de status do pedido, os mais importantes são: 200 (pedido respondido), 400 (pedido invalido), 404 (dado não encontrado), 503 (serviço não disponível).
Programação
A primeira coisa a fazer em um código de Python é iniciar as bibliotecas, use o comando import para isto.
Ficará assim:
import requests import json
Para solicitar alguma informação da API recorra ao comando GET da biblioteca requests:
resposta = requests.get("https://siteficticio.com")
Em seguida é necessário saber se a informação foi recebida com sucesso, então compare o código de status da resposta com:
if resposta.status_code == 200: print("Informação recebida com sucesso")
Caso a resposta da solicitação contenha alguma mensagem de erro, ou seja, o código de resposta seja diferente de 200, informe ao usuário com:
else: print(f"Ocorreu um erro {resposta.status_code} com seu pedido")
Então juntando tudo fica assim:
import requests import json resposta = requests.get("https://siteficticio.com") if resposta.status_code == 200: print("Informação recebida com sucesso") else: print(f"Ocorreu um erro {resposta.status_code} com seu pedido")
Note que o código acima não vai funcionar por conta do endereço especificado não existir.
Open Weather Map
Para este projeto é recomendado o uso openweathermap.org que tem um plano gratuito, aqui o site fornecerá uma chave para o uso de sua API.
Para pegar sua chave é necessário criar uma conta. Ao criar uma conta clique no canto superior esquerdo e selecione "My API keys". Note que demora em torno de uma hora para a chave poder ser usada.
Para chamar e conversar com o servidor é necessário adicionar depois do link os argumentos para que ele saiba o que responder.
O link ficará assim:
https://api.openweathermap.org/data/2.5/weather?lat={lat}&lon={lon}&appid={Chave da API}
No link acima o que está entre chaves deve ser substituído pelos argumentos, outro problema é que a resposta deste pedido será devolvida no sistema imperial (americano), para resolve-lo colocamos o parâmetro "&units=metric":
https://api.openweathermap.org/data/2.5/weather?lat={lat}&lon={lon}&units=metric&appid={Chave da API}
Agora use o código em Python para chamar esta API:
import requests import json resposta = requests.get("https://api.openweathermap.org/data/2.5/weather?lat=-23.53&lon=-46.62&units=metric&appid={Chave da API}") if resposta.status_code == 200: print("Informação recebida com sucesso") else: print(f"Ocorreu um erro {resposta.status_code} com seu pedido")
O código acima recebe os dados porém não faz nada com as informações então coloque a resposta em alguma variável, para isto utilize a função "json()".
clima = resposta.json()
Agora que as informações estão em uma variável use "print(clima)". Porém não terá indentação então será necessário usar o comando "json.dumps()" com o parâmetro "indent=" ". Note que o espaço em branco que será a indentação, mas é possível usar "\t" para indentar com tab.
Ficará assim:
print(json.dumps(clima, indent="\t"))
O código final ficará assim:
import requests import json resposta = requests.get("https://api.openweathermap.org/data/2.5/weather?lat=-23.53&lon=-46.62&units=metric&appid={Chave da API}") if resposta.status_code == 200: print("Informação recebida com sucesso") clima = resposta.json() print(json.dumps(clima, indent="\t")) else: print(f"Ocorreu um erro {resposta.status_code} com seu pedido")
Para entender mais da API do Open Weather Map clique aqui. (O site deles está disponível em inglês.)