Sobes.tech
Middle

Kuidas rakendada ootamist (wait) API jaoks?

sobes.tech AI

Vastus AI-lt

API testimiseks kasutatakse tingimustele põhinevaid selgeid ootusi. Kõige levinumad meetodid:

  1. ** polling ** (küsitlus): Perioodiline päring API-le kuni oodatud tulemuse saamiseni või ajapiirangu lõppemiseni.

    import time
    import requests
    
    def wait_for_status(url, expected_status, timeout=30, interval=1):
        """
        Ootab kindlat staatust API-lt.
    
        Args:
            url: API lõpp-punkti URL.
            expected_status: Oodatud HTTP staatuse kood.
            timeout: Maksimaalne ootamise aeg sekundites.
            interval: Vahemaa katsete vahel sekundites.
    
        Returns:
            requests.Response: Vastuse objekt õnnestumise korral, None ajapiirangu lõppedes.
        """
        start_time = time.time()
        while time.time() - start_time < timeout:
            try:
                response = requests.get(url)  # Või muu HTTP meetod
                if response.status_code == expected_status:
                    return response
            except requests.exceptions.RequestException as e:
                print(f"Viga päringus: {e}") # Päringu vea logimine
            time.sleep(interval)
        return None # Tagastame None ajapiirangu lõppedes
    
    # Näide kasutamisest
    # api_url = "http://example.com/api/resource"
    # expected_status_code = 200
    # response = wait_for_status(api_url, expected_status_code)
    # kui response:
    #     print("Oodatud staatus saadud!")
    # else:
    #     print("Aja piirang lõppes ootamise ajal.")
    
  2. ** long polling ** (pikk küsitlus): Klient saadab päringu ja server hoiab ühenduse avatud kuni andmed ilmuvad või aeg lõppeb.

  3. ** Webhooks ** (tagasikutsed): API kutsub määratud URL-i kliendi poole, kui toimub teatud sündmus. See nõuab avalikult kättesaadava lõpp-punkti olemasolu kliendi poole Webhooki vastuvõtmiseks.

    • Rakendamine:
      • Webhooki URL-i registreerimine teise teenuse API kaudu.
      • Koodi kirjutamine kliendi poole, et vastu võtta ja töödelda HTTP POST-päringuid Webhookist.
      • Ootamine (enamasti asünkroonne) andmete saamiseks Webhooki kaudu.

Meetodi valik sõltub API arhitektuurist ja testi nõuetest. Polling on kõige levinum ja lihtsaim realiseerida enamikul REST API-del.