Sobes.tech
Middle

Чӣ гуна интизорӣ (wait) барои API иҷро кардан мумкин аст?

sobes.tech AI

Ҷавоб аз AI

Барои тестгирии API истифода мешаванд интизориҳои равшан асосёфта ба шароитҳо. Усули маъмултарин:

  1. ** polling ** (пурсиш): Пурсиши давомдор ба API то он даме, ки натиҷаи интизорӣ ба даст ояд ё вақти тамом шавад.

    import time
    import requests
    
    def wait_for_status(url, expected_status, timeout=30, interval=1):
        """
        интизорӣ барои статуси муайян аз API.
    
        Args:
            url: URL-и нуқтаи охирини API.
            expected_status: Кодекси статуси HTTP интизорӣ.
            timeout: Вақти максималии интизорӣ дар сония.
            interval: Миёнаравии байни кӯшишҳо дар сония.
    
        Returns:
            requests.Response: Объекти ҷавоб дар сурат успех, None дар сурат тамом шудан.
        """
        start_time = time.time()
        while time.time() - start_time < timeout:
            try:
                response = requests.get(url)  # Ё дигар усули HTTP
                if response.status_code == expected_status:
                    return response
            except requests.exceptions.RequestException as e:
                print(f"Хатогӣ дар дархост: {e}") # Логгирии хатогии дархост
            time.sleep(interval)
        return None # Возгардонидани None дар сурат тамом шудан
    
    # Мисоли истифода
    # api_url = "http://example.com/api/resource"
    # expected_status_code = 200
    # response = wait_for_status(api_url, expected_status_code)
    # if response:
    #     print("Статус интизорӣ гирифта шуд!")
    # else:
    #     print("Вақти тамом шудан аз интизорӣ.")
    
  2. ** long polling ** (дарозии пурсиш): Муштарӣ мефиристад дархост ва сервер нигоҳ медорад пайвастагиро то пайдо шудани маълумот ё тамом шудани вақти тамом.

  3. ** Webhooks ** (зангҳои пасгардон): API URL-ро дар тарафи муштарӣ даъват мекунад вақте ки рӯй медиҳад ҳодисае муайян. Ин талаб мекунад, ки нуқтаи охирини публитӣ дар тарафи муштарӣ барои қабул кардани Webhook мавҷуд бошад.

    • Иҷро:
      • Сабти URL-и Webhook тавассути API-и дигар хизмат.
      • Навиштани код дар тарафи муштарӣ барои қабул ва коркарди дархостҳои HTTP POST аз Webhook.
      • Интизорӣ (бештар асинхронӣ) барои гирифтани маълумот тавассути Webhook.

Интихоби усул вобаста ба архитектураи API ва талаботи тест мебошад. Polling маъмултарин ва соддатарин барои иҷро барои бештари REST API.