Sobes.tech
Middle

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:

  1. 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.")
    
  2. 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.

  3. 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.

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.