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:
-
** 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.") -
** long polling ** (garš aptauja): Klients sūta pieprasījumu, un serveris turpina savienojumu līdz dati parādīsies vai beidzas laika limits.
-
** 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.
- Realizācija:
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.