Middle
Ինչպես իրականացնել սպասում (wait) API-ի համար։
sobes.tech AI
Պատասխան AI-ից
API թեստավորման համար օգտագործվում են պայմանների վրա հիմնված հստակ սպասումներ: Ամենատարածված մեթոդները:
-
** 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("Ժամանակի ավարտը սպասման ժամանակ:") -
** long polling ** (երկարաձգված հարցում): Մարտկոցը ուղարկում է հարցում և սերվերը պահում է կապը բաց մինչև տվյալների հայտնվելը կամ ժամանակի ավարտը:
-
** Webhooks ** (վերադարձ զանգեր): API-ը զանգահարում է նշված URL-ը հաճախորդի կողմից որոշակի իրադարձության դեպքում:
- Իմպլեմենտացիա:
- Webhook URL-ի գրանցում այլ ծառայության API-ի միջոցով:
- Կոդ գրել հաճախորդի կողմից՝ HTTP POST հարցումների ընդունում և մշակման համար:
- Ապահովել (ավելի հաճախ ասինխրոն) տվյալների ստացումը Webhook-ի միջոցով:
- Իմպլեմենտացիա:
Ընտրությունը կախված է API-ի ճարտարապետությունից և թեստի պահանջներից: Polling-ը ամենատարածվածն է և հեշտ է իրականացնել մեծ մասի REST API-ների համար։