Python Requests Modülünün Kurulması
İlk olarak python3 için geçerli pip kurulur. Paket yüklü ise kodu çalıştırmanız sorun yaratmayacaktır. Ardından requests modülü kurulur.
sudo apt-get install python3-pip
pip3 install requests
Windows kurulumu için aşağıdaki satır uygulanmalıdır.
python -m pip install requests
Requests modülünü kullandığımız zaman API Servere get isteği gönderilir. Bu isteği alan API server karşılık olarak Response Code(kod) ve Response Data(veri) gönderir. Gönderilen veri tipi genellikle JSON yapısındadır.
JSON yapısı hakkında bilgi almak için ilgili yazımı okuyabilirsiniz.
Get: Basit tanım olarak, client ve server arasında oluşturulmuş istek tipidir. Biz buradaki istek şeklini post veya put şeklinde de değiştirilebilir.
Response Code: Server tarafından geri gönderilen uluslararası tanımlanmış kodlardır. Yani her server aynı kod hatalarını barındırır.
Response Kodların bazıları şunlardır:
200: İstek başarılı
301: Yönlendirme mevcut ilgili adrese yönlendirileceksiniz.
400: İstek hatalı
404: İzin olmadığını gösterir.
Python Request Modülü Kullanımı API için
Daha önce kurduğumuz modülü import(dahil) edilir.
import requests
r = requests.get('https://api.genelpara.com/embed/doviz.json')
print(" \n Status code for specific search: ",r.status_code,"\n")
İlk isteğimizi atalım ve gelen yanıta bakalım. Output 200 şeklinde olmalıdır.
İstek gönderirken python üzerinde geldiğimizi değilde tarayıcı gibi gözükmek istiyorsan, Request ile header bilgilerimizi göndirilir.
r = requests.get('https://api.genelpara.com/embed/doviz.json',headers={'user-agent': 'asimmisirliFirefox'})
Post ve Put metotları ile de istek atılabilir.
r = requests.post('https://api.genelpara.com/embed/doviz.json',headers={'user-agent': 'asimmisirliFirefox'})
Karşı sistem tarafından kullanıcı adı ve şifre ile authentication isteniyorsa şu şekilde kullanılır.
from requests.auth import HTTPBasicAuth
r = requests.get('https://api.genelpara.com/embed/doviz.json', auth=HTTPBasicAuth('user', 'pass'))
Basit bir uygulama ile döviz kurlarını çekelim ve Okunabilir hale getirelim.
import requests
r = requests.post('https://api.genelpara.com/embed/doviz.json',headers={'user-agent': 'asimmisirliFirefox'})
print(" \n Status code: ",r.status_code,"\n")
if r.status_code == 200:
#json verilerini alıyoruz.
data2 = r.json()
for i in data2:
print("1 Türk lirası Satis/Alış ", i, ":", data2[i]["satis"], data2[i]["alis"], data2[i]["degisim"])
print("-------------------------------------------------------")
else:
print ("Something wrong went")
For döngüsü hakkında şunları söyleyebiliriz. Tipi yazdırdığımız zaman dictionaries olarak gösteriyor. Bu sözlük yapısı key:value yapısından oluşur. satis, alis, degisim bunlar keylerdir. Bu keyleri vererek değerlere(value) ulaşıyoruz.
print (type(data2))
Ekran çıktısı bu şekilde olacaktır.
verileri neden genelpara sitesinden çekiyoruz