Sobes.tech
Middle

Kā īstenot gaidīšanu (wait) API?

sobes.tech AI

Atbilde no AI

API testēšanai tiek izmantotas skaidras nosacījumu balstītas gaidīšanas metodes. Visbiežāk sastopamās metodes:

  1. ** polling ** (aptauja): Periodiska pieprasījuma sūtīšana API, līdz tiek saņemts gaidāmais rezultāts vai beidzas laika ierobežojums.

    import time
    import requests
    
    def wait_for_status(url, expected_status, timeout=30, interval=1):
        """
        Gaidīt noteiktu statusu no API.
    
        Args:
            url: API galapunkta URL.
            expected_status: Gaidāmais HTTP statusa kods.
            timeout: Maksimālais gaidīšanas laiks sekundēs.
            interval: Intervāls starp mēģinājumiem sekundēs.
    
        Returns:
            requests.Response: Atbilde objekts panākuma gadījumā, None, ja beidzas laiks.
        """
        start_time = time.time()
        while time.time() - start_time < timeout:
            try:
                response = requests.get(url)  # Vai cita HTTP metode
                if response.status_code == expected_status:
                    return response
            except requests.exceptions.RequestException as e:
                print(f"Kļūda pieprasījumā: {e}") # Kļūdas reģistrācija
            time.sleep(interval)
        return None # Atgriežam None, ja beidzas laiks
    
    # Piemērs lietošanai
    # api_url = "http://example.com/api/resource"
    # expected_status_code = 200
    # response = wait_for_status(api_url, expected_status_code)
    # ja response:
    #     print("Gaidošais statuss saņemts!")
    # else:
    #     print("Laika limits izbeidzās.")
    
  2. ** long polling ** (garš aptauja): Klients sūta pieprasījumu, un serveris turpina savienojumu līdz dati parādīsies vai beidzas laika limits.

  3. ** Webhooks ** (atpakaļzvani): API izsauc norādīto URL klienta pusē, kad notiek noteikts notikums. Tas prasa publiski pieejamu galapunktu klienta pusē Webhook saņemšanai.

    • Realizācija:
      • Webhook URL reģistrācija caur citas pakalpojuma API.
      • Koda rakstīšana klienta pusē, lai pieņemtu un apstrādātu HTTP POST pieprasījumus no Webhook.
      • Gaidīšana (bieži asenhroni) datu saņemšanai caur Webhook.

Izvēle ir atkarīga no API arhitektūras un testēšanas prasībām. Polling ir visbiežāk izmantotais un vienkāršākais realizēt lielākajai daļai REST API.