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: URL-и нуқтаи охирини API. 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-и Webhook тавассути API-и дигар хизмат.
- Навиштани код дар тарафи муштарӣ барои қабул ва коркарди дархостҳои HTTP POST аз Webhook.
- Интизорӣ (бештар асинхронӣ) барои гирифтани маълумот тавассути Webhook.
- Иҷро:
Интихоби усул вобаста ба архитектураи API ва талаботи тест мебошад. Polling маъмултарин ва соддатарин барои иҷро барои бештари REST API.