Sobes.tech
Middle

API үчүн күтүүнү (wait) кантип ишке ашыруу керек?

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: API соңку чекитинин URLи.
            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-ди башка кызматтын API аркылуу каттоо.
      • Кардар тарапта HTTP POST суроолорду кабыл алуу жана иштетүү үчүн код жазуу.
      • (Көбүнчө асинхрондуу) Webhook аркылуу маалымат алуу үчүн күтүү.

Ысыкметод тандоо API архитектурасына жана тест талаптарына жараша болот. Polling көбүнчө эң жөнөкөй жана көпчүлүк REST API үчүн ишке ашыруу оңой.