Hogyan valósítható meg a várakozás (wait) az API-hoz?
sobes.tech MI
Válasz az MI-től
Az API teszteléséhez olyan egyértelmű elvárásokat használnak, amelyek feltételeken alapulnak. A leggyakoribb módszerek:
-
Polling (kérdezés): Rendszeres kérés az API-hoz, amíg a várt eredményt el nem érik vagy a timeout lejár.
import time import requests def wait_for_status(url, expected_status, timeout=30, interval=1): """ Egy adott státuszt vár az API-tól. Args: url: Az API végpontjának URL-je. expected_status: Várt HTTP státuszkód. timeout: Maximális várakozási idő másodpercben. interval: Kísérletek közötti időintervallum másodpercben. Returns: requests.Response: Válaszobjektum siker esetén, None timeout esetén. """ start_time = time.time() while time.time() - start_time < timeout: try: response = requests.get(url) # Vagy más HTTP módszer if response.status_code == expected_status: return response except requests.exceptions.RequestException as e: print(f"Hiba a kérés során: {e}") # Hiba naplózása time.sleep(interval) return None # Timeout esetén None # Használati példa # api_url = "http://example.com/api/resource" # expected_status_code = 200 # response = wait_for_status(api_url, expected_status_code) # if response: # print("Várt státusz megkapva!") # else: # print("Timeout a státusz várakozásakor.") -
Long polling (hosszú kérés): A kliens kér egy választ, és a szerver nyitva tartja a kapcsolatot, amíg adatok nem érkeznek vagy a timeout lejár. Kevésbé gyakori a standard REST API-kban, inkább eseményalapú vagy WebSocket architektúrákban.
-
Webhooks (visszahívások): Az API meghív egy megadott URL-t a kliens oldalán, amikor egy adott esemény megtörténik. Nyilvánosan elérhető végpont szükséges a webhook fogadásához.
- Implementáció:
- Webhook URL regisztrálása egy másik szolgáltatás API-ján keresztül.
- Kód írása a kliens oldalon a webhook HTTP POST kérésének fogadására és feldolgozására.
- Általában aszinkron módon várja az adatok fogadását a webhookon keresztül.
- Implementáció:
A módszer kiválasztása az API architektúrájától és a tesztelési követelményektől függ. A polling a legelterjedtebb és legegyszerűbb módszer a legtöbb REST API esetében.