API üçün gözləmə (wait) necə həyata keçirilir?
sobes.tech Süni İntellekt
AI-dan cavab
API sınaqları üçün şərtlərə əsaslanan açıq gözləntilər istifadə olunur. Ən yaygın metodlar:
-
Polling (sorğu): Gözlənilən nəticə alınana qədər və ya vaxt aşımı başa çatana qədər API-yə dövriyyə ilə sorğu göndərilir.
import time import requests def wait_for_status(url, expected_status, timeout=30, interval=1): """ API-dən müəyyən statusu gözləyir. Args: url: API-nin son nöqtəsinin URL-i. expected_status: Gözlənilən HTTP status kodu. timeout: Maksimum gözləmə vaxtı saniyə ilə. interval: Cəhdlər arasındakı interval saniyə ilə. Returns: requests.Response: Uğurla cavab obyekti, vaxt aşımı baş verərsə None. """ start_time = time.time() while time.time() - start_time < timeout: try: response = requests.get(url) # Və ya başqa HTTP metodu if response.status_code == expected_status: return response except requests.exceptions.RequestException as e: print(f"Sorğu zamanı xəta: {e}") # Xəta qeydiyyatı time.sleep(interval) return None # Vaxt aşımı baş verərsə None qaytarır # İstifadə nümunəsi # api_url = "http://example.com/api/resource" # expected_status_code = 200 # response = wait_for_status(api_url, expected_status_code) # if response: # print("Gözlənilən status alındı!") # else: # print("Status gözləmə vaxtı bitdi.") -
Long polling (uzun sorğu): Müştəri sorğu göndərir və server məlumatlar çıxana və ya vaxt aşımı başa çatana qədər əlaqəni açıq saxlayır. Standart REST API-lərdə daha az istifadə olunur, hadisələr və ya WebSocket əsasında arxitekturalarda daha çox istifadə olunur.
-
Webhooks (geri çağırışlar): API müəyyən hadisə baş verdikdə, müştərinin URL-ni çağırır. Bu, müştəri tərəfində açıq və əlçatan bir endpoint tələb edir.
- İcra:
- Digər xidmətin API vasitəsilə webhook URL-ni qeydiyyatdan keçirmək.
- Webhook-dan gələn HTTP POST sorğularını qəbul etmək və işləmək üçün kod yazmaq.
- Webhook vasitəsilə məlumatların alınmasını (əksər hallarda asinxron) gözləmək.
- İcra:
Yöntəm seçimi API arxitekturasına və test tələblərinə bağlıdır. Polling, əksər REST API-lər üçün ən yaygın və ən sadə tətbiq olunan üsuldur.