როგორ განვახორციელოთ 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) # თუ პასუხი: # print("მოლოდინული სტატუსი მიღებულია!") # სხვა შემთხვევაში: # print("დროის გასვლის მოლოდინი.") -
** long polling ** (გრძელი გამოკითხვა): კლიენტი აგზავნის მოთხოვნას და სერვერი ინარჩუნებს კავშირს, სანამ მონაცემები არ გამოჩნდება ან დროის შეზღუდვა არ ამოიწურება.
-
** Webhooks ** (უკანასკნელი ზარები): API ახორციელებს გამოძახებას მითითებულ URL-ზე მომხმარებლის მხრიდან კონკრეტული მოვლენის დროს. ეს მოითხოვს საჯაროდ ხელმისაწვდომი ბოლო წერტილის არსებობას მომხმარებლის მხარეს Webhook-ის მისაღებად.
- შესრულება:
- Webhook URL-ის რეგისტრაცია სხვა სერვისის API-ის მეშვეობით.
- კოდის დაწერა მომხმარებლის მხარეს HTTP POST მოთხოვნებისთვის Webhook-ისგან მიღებისა და დამუშავებისთვის.
- მონაცემების მიღების (ძირითადად ასინქრონული) მოლოდინი Webhook-ის მეშვეობით.
- შესრულება:
მეთოდის არჩევა დამოკიდებულია API-ის არქიტექტურაზე და ტესტის მოთხოვნებზე. Polling არის ყველაზე გავრცელებული და მარტივი რეალიზაცია უმეტეს REST API-ებისთვის.