API için bekleme (wait) nasıl uygulanır?
sobes.tech yapay zeka
AI'dan gelen yanıt
API testleri için, koşullara dayalı açık beklentiler kullanılır. En yaygın yöntemler:
-
Polling (sorgulama): Beklenen sonuç alınana kadar veya zaman aşımı gerçekleşene kadar API'ye periyodik istek gönderilir.
import time import requests def wait_for_status(url, expected_status, timeout=30, interval=1): """ API'den belirli bir durumu bekler. Args: url: API uç noktası URL'si. expected_status: Beklenen HTTP durum kodu. timeout: Maksimum bekleme süresi saniye cinsinden. interval: Denemeler arasındaki süre saniye cinsinden. Returns: requests.Response: Başarı durumunda yanıt nesnesi, zaman aşımında None. """ start_time = time.time() while time.time() - start_time < timeout: try: response = requests.get(url) # Veya başka bir HTTP yöntemi if response.status_code == expected_status: return response except requests.exceptions.RequestException as e: print(f"İstek sırasında hata: {e}") # Hata kaydı time.sleep(interval) return None # Zaman aşımında None döner # Kullanım örneği # api_url = "http://example.com/api/resource" # expected_status_code = 200 # response = wait_for_status(api_url, expected_status_code) # if response: # print("Beklenen durum alındı!") # else: # print("Durum bekleme zaman aşımı.") -
Long polling (uzun sorgulama): İstemci, bir istek gönderir ve sunucu, veriler ortaya çıkana kadar veya zaman aşımı gerçekleşene kadar bağlantıyı açık tutar. Standart REST API'lerde daha az kullanılır, olay tabanlı mimariler veya WebSocket'te daha yaygındır.
-
Webhooks (geri çağrılar): API, belirli bir olay gerçekleştiğinde, istemcideki belirlenmiş URL'yi çağırır. Webhook'u almak için istemci tarafında genel erişilebilir bir uç nokta gereklidir.
- Uygulama:
- Bir başka servisin API'si aracılığıyla webhook URL'sinin kaydı.
- Webhook'tan gelen HTTP POST isteklerini almak ve işlemek için istemci tarafında kod yazmak.
- Webhook aracılığıyla veri alımını (çoğu zaman asenkron) beklemek.
- Uygulama:
Yöntem seçimi, API mimarisi ve test gereksinimlerine bağlıdır. Polling, çoğu REST API için en yaygın ve uygulanması en kolay yöntemdir.