API uchun kutish (wait) qanday amalga oshiriladi?
sobes.tech AI
AIdan javob
API testlari uchun shartlarga asoslangan aniq kutishlar ishlatiladi. Eng keng tarqalgan usullar:
-
Polling (so'rov): Kutayotgan natija olinmaguncha yoki timeout tugaguncha API ga davriy so'rov yuboriladi.
import time import requests def wait_for_status(url, expected_status, timeout=30, interval=1): """ API dan belgilangan holatni kutadi. Args: url: API ning endpoint URL si. expected_status: Kutayotgan HTTP holat kodi. timeout: Maksimal kutish vaqti sekundlarda. interval: Har bir urinish orasidagi interval sekundlarda. Returns: requests.Response: Muvaffaqiyatli bo'lsa javob obyekti, timeout bo'lsa None. """ start_time = time.time() while time.time() - start_time < timeout: try: response = requests.get(url) # Yoki boshqa HTTP usuli if response.status_code == expected_status: return response except requests.exceptions.RequestException as e: print(f"So'rovda xato: {e}") # Xatoni log qilish time.sleep(interval) return None # Timeout bo'lsa None qaytaradi # Misol uchun foydalanish # api_url = "http://example.com/api/resource" # expected_status_code = 200 # response = wait_for_status(api_url, expected_status_code) # if response: # print("Kutgan holat olindi!") # else: # print("Holatni kutish vaqt o'tdi.") -
Long polling (uzoq so'rov): Mijoz so'rov yuboradi va server ma'lumotlar paydo bo'lgunga qadar yoki timeout tugaguncha ulanishni ochiq tutadi. Standart REST API larda kamroq qo'llaniladi, voqealar yoki WebSocket asosidagi arxitekturalarda ko'proq ishlatiladi.
-
Webhooks (orqaga chaqirishlar): API muayyan voqea yuz berganda, mijtiga URL chaqiradi. Bu uchun mijtida ochiq va kirish mumkin bo'lgan endpoint bo'lishi kerak.
- Amalga oshirish:
- Webhook URL ni boshqa xizmatning API orqali ro'yxatdan o'tkazish.
- Webhook dan keladigan HTTP POST so'rovlarini qabul qilish va ishlash uchun kod yozish.
- Webhook orqali ma'lumotlarni asinxron tarzda kutish.
- Amalga oshirish:
Usul tanlovi API arxitekturasi va test talablarga bog'liq. Polling ko'p hollarda eng oddiy va keng tarqalgan usul hisoblanadi.