0Pricing
Learn AI with Python · Ders

Veri Toplama İçin REST API Temelleri

HTTP GET/POST, üst bilgiler, kimlik doğrulama (API anahtarı, Bearer) ve requests ile JSON ayrıştırma.

Veri Toplama İçin REST API Temelleri, CoddyKit'te ücretsiz bir Learn AI with Python dersidir. Bu, 4 dersinin 1. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Learn AI with Python öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Learn AI with Python kursu toplamda 4 dersten oluşur.

API'ler Yapay Zekâ İçin Neden Önemlidir

Modeller yalnızca verileri kadar iyidir. Web API'leri, tek bir statik dosyaya bağlı kalmak yerine hava durumu, fiyatlar, sosyal medya gönderileri ve herkese açık veri kümeleri gibi güncel ve yapılandırılmış verileri talep üzerine toplamanızı sağlar.

Bu kursta, bu verileri getirmek ve depolamak için Python ile popüler requests kütüphanesi kullanılmaktadır.

REST API Nedir?

REST API'si, kaynakları HTTP üzerinden sunar. Bir URL'ye (uç noktaya) istek gönderir ve genellikle JSON biçiminde veri alırsınız.

Temel HTTP yöntemleri:

  • GET — veri okuma
  • POST — veri oluşturma
  • PUT/PATCH — güncelleme
  • DELETE — kaldırma

Veri toplamak için çoğunlukla GET kullanılır.

İlk GET İsteği

requests.get(url), bir GET isteği gönderir ve bir yanıt nesnesi döndürür. Yanıt; durum, üst bilgiler ve gövdeyi içerir.

import requests

resp = requests.get("https://api.example.com/users")
print(resp.status_code)   # 200
print(resp.text[:200])    # raw body as a string

response.status_code Denetimi

Durum kodu, isteğin başarılı olup olmadığını bildirir:

  • 200 OK
  • 301/302 yönlendirme
  • 400 hatalı istek
  • 401/403 kimlik doğrulama sorunu
  • 404 bulunamadı
  • 429 istek hızı sınırına ulaşıldı
  • 500 sunucu hatası
resp = requests.get(url)
if resp.status_code == 200:
    print("Success")
else:
    print("Failed:", resp.status_code)

response.json() ile JSON Ayrıştırma

Çoğu API JSON döndürür. response.json(), gövdeyi Python sözlüklerine ve listelerine otomatik olarak ayrıştırır.

JSON'u elle ayrıştırmayın — .json() bunu sizin için yönetir ve gövde geçerli JSON değilse anlaşılır bir hata oluşturur.

resp = requests.get("https://api.example.com/users/1")
data = resp.json()
print(data["name"])
print(data["email"])

params ile Sorgu Parametreleri Gönderme

Sorgu parametrelerini kullanarak istekleri filtreleyin ve yapılandırın. params parametresine bir sözlük aktarın; requests, kodlamayı da yöneterek URL'yi sizin için oluşturur.

Örnek, URL'de ?city=London&units=metric hâline gelir.

params = {"city": "London", "units": "metric"}
resp = requests.get("https://api.example.com/weather", params=params)
print(resp.url)
print(resp.json())

Üst Bilgileri Gönderme

Üst bilgiler; içerik türü, kullanıcı aracısı veya API anahtarı/belirteci gibi üst verileri taşır. Bunları headers parametresine bir sözlük olarak aktarın.

Birçok API, erişim için Authorization üst bilgisi gerektirir.

headers = {
    "Authorization": "Bearer YOUR_TOKEN",
    "User-Agent": "my-data-collector/1.0",
}
resp = requests.get("https://api.example.com/data", headers=headers)
print(resp.json())

Sağlam Kod İçin raise_for_status()

Kodları elle denetlemek yerine resp.raise_for_status() çağrısını kullanın. Bu çağrı, 4xx veya 5xx yanıtlarının tümü için bir HTTPError oluşturur; böylece başarısızlıklar sessizce gözden kaçmaz.

Hataları uygun biçimde ele almak için bunu try/except içine alın.

import requests

try:
    resp = requests.get(url, timeout=10)
    resp.raise_for_status()
    data = resp.json()
except requests.HTTPError as e:
    print("HTTP error:", e)
except requests.RequestException as e:
    print("Network error:", e)

Her Zaman Zaman Aşımı Belirleyin

timeout olmadan, yanıt vermeyen bir sunucu betiğinizi sonsuza dek bekletebilir. Her zaman bir değer aktarın (saniye cinsinden).

Binlerce uç noktaya erişen veri toplama döngülerinde eksik zaman aşımı, işlerin donmasının yaygın nedenlerinden biridir.

resp = requests.get(url, timeout=10)   # give up after 10 seconds

Session ile Bağlantıları Yeniden Kullanma

Bir requests.Session, istekler arasındaki temel TCP bağlantısını yeniden kullanır ve üst bilgileri bir kez ayarlamanıza olanak tanır. Aynı sunucuya çok sayıda çağrı yapıldığında bu yöntem çok daha hızlıdır.

import requests

session = requests.Session()
session.headers.update({"Authorization": "Bearer YOUR_TOKEN"})

for uid in [1, 2, 3]:
    resp = session.get(f"https://api.example.com/users/{uid}")
    print(resp.json()["name"])

session.close()

Temiz Bir Veri Getirme Yardımcısı

Bu yaklaşımı yeniden kullanılabilir bir işleve dönüştürün: bir oturum oluşturun, zaman aşımını uygulayın, hatalarda istisna oluşturun ve ayrıştırılmış JSON'u döndürün.

Sonraki derslerde sayfalama ve depolama için bu yardımcı işlevi temel alacaksınız.

def fetch_json(session, url, params=None):
    resp = session.get(url, params=params, timeout=10)
    resp.raise_for_status()
    return resp.json()

Hızlı Kontrol: Sağlam İstekler

Kodunuzun 404 veya 500 yanıtında otomatik olarak bir istisna oluşturmasını istiyorsunuz.

Özet: REST API Temelleri

Artık HTTP üzerinden veri toplayabilirsiniz:

  • İstek göndermek için requests.get(url, params=..., headers=...)
  • Başarısızlıkları belirlemek için response.status_code ve raise_for_status()
  • Gövdeyi ayrıştırmak için response.json()
  • Beklemeleri önlemek için timeout
  • Bağlantıları ve üst bilgileri yeniden kullanmak için requests.Session

Sırada: birçok sayfaya yayılan veri kümelerini toplama.

Sıkça Sorulan Sorular

“Veri Toplama İçin REST API Temelleri” dersi ücretsiz mi?

Evet — “Veri Toplama İçin REST API Temelleri” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Learn AI with Python kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Learn AI with Python kursu toplamda 4 dersten oluşur.

“Veri Toplama İçin REST API Temelleri” dersinde ne öğreneceğim?

HTTP GET/POST, üst bilgiler, kimlik doğrulama (API anahtarı, Bearer) ve requests ile JSON ayrıştırma. Learn AI with Python ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

Learn AI with Python öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Learn AI with Python, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 1. dersidir.

“Veri Toplama İçin REST API Temelleri” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu Learn AI with Python dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Learn AI with Python dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. Veri Toplama İçin REST API Temelleri
  2. Sayfalandırma ve Büyük Veri Kümelerini Toplama
  3. Toplanan Verileri Verimli Biçimde Depolama
  4. Herkese Açık Veri API'leriyle Çalışma
← Learn AI with Python Sayfasına Dön