Middle
API үчүн күтүүнү (wait) кантип ишке ашыруу керек?
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 үчүн ишке ашыруу оңой.