Python requests kütüphanesi api entegrasyonunun en pratik yolu, Requests kütüphanesini kullanmaktır. Yerleşik urllib modülüne göre çok daha az kod gerektirir ve yanıtları işlemek son derece kolaylaşır. Bu rehber, kurulumdan gerçek API isteğine kadar tüm süreci adım adım anlatır. **Ön koşullar** - Python 3.7 veya üzeri kurulu olmalı - pip paket yöneticisi çalışır durumda olmalı - Temel Python sözdizimi bilgisi (fonksiyonlar, sözlükler) **Adım 1: Requests kütüphanesini kurun** Terminal veya komut istemcisinde şu komutu çalıştırın: ``` pip install requests ``` Sanal ortam (virtual environment) kullanıyorsanız önce ortamı etkinleştirin, ardından kurulumu yapın. Kurulumu doğrulamak için `python -c "import requests; print(requests.__version__)"` komutunu çalıştırın. **Adım 2: İlk GET isteğini gönderin** GET isteği, bir API'den veri almak için kullanılır. En yaygın istek türüdür. ```python import requests url = "https://jsonplaceholder.typicode.com/posts/1" yaniit = requests.get(url) print(yaniit.status_code) # 200 çıkmalı print(yaniit.json()) # JSON yanıtı dict olarak ``` Python requests kütüphanesi api isteklerini bu kadar kısa kodla gerçekleştirir. `status_code` 200 ise istek başarılı demektir. **Adım 3: Sorgu parametresi gönderin** URL'ye parametre eklemek için `params` argümanını kullanın: ```python parametreler = {"userId": 1, "completed": False} yaniit = requests.get("https://jsonplaceholder.typicode.com/todos", params=parametreler) print(yaniit.url) # Otomatik oluşturulan URL'yi gösterir print(len(yaniit.json())) # Dönen eleman sayısı ``` Parametreleri URL'ye elle yazmak yerine `params` sözlüğü kullanmak, URL kodlamasını otomatik halleder ve hata riskini azaltır. **Adım 4: POST isteği gönderin** POST isteği, API'ye veri göndermek için kullanılır: ```python yeni_post = { "title": "Rehber Yazısı", "body": "İçerik buraya gelir.", "userId": 1 } yaniit = requests.post( "https://jsonplaceholder.typicode.com/posts", json=yeni_post # json= argümanı Content-Type başlığını otomatik ayarlar ) print(yaniit.status_code) # 201 Created beklenir print(yaniit.json()) ``` **Adım 5: Kimlik doğrulama ekleyin** Pek çok gerçek API, istek başlıklarına token eklenmesini zorunlu kılar: ```python basliklar = { "Authorization": "Bearer BURAYA_TOKEN_GELIR", "Content-Type": "application/json" } yaniit = requests.get( "https://api.ornek.com/kullanici/profil", headers=basliklar ) ``` Token değerini kod içine sabit yazmak yerine ortam değişkeninden (`os.environ.get("API_TOKEN")`) okuyun. Bu, güvenlik açısından kritik bir alışkanlıktır. **Adım 6: Hataları yönetin** Python requests kütüphanesi api hatalarını susturmaz; ağ hatası durumunda istisna fırlatır: ```python try: yaniit = requests.get(url, timeout=5) yaniit.raise_for_status() # 4xx ve 5xx hatalarını istisna olarak fırlatır veri = yaniit.json() except requests.exceptions.Timeout: print("Bağlantı zaman aşımına uğradı.") except requests.exceptions.HTTPError as e: print(f"HTTP hatası: {e}") except requests.exceptions.RequestException as e: print(f"Bağlantı hatası: {e}") ``` `timeout` parametresini her zaman belirtin. Belirtmezseniz program yanıt gelmesi beklentisiyle sonsuza kadar askıda kalabilir. **Yaygın hatalar** - `json=` yerine `data=` kullanmak: `data=` argümanı form verisi gönderir, JSON değil. API JSON bekliyorsa mutlaka `json=` kullanın. - Durum kodunu kontrol etmemek: 200 ile dönen yanıt bazen hata mesajı içerebilir; her zaman `status_code` ve yanıt gövdesini inceleyin. - Timeout belirtmemek: Ağ sorunlarında uygulamanız yanıt vermez hale gelebilir.