Sobes.tech
Middle

როგორ განვახორციელოთ API-ისთვის მოლოდინი (wait)?

sobes.tech AI

პასუხი AI-სგან

API ტესტირებისთვის გამოიყენება პირობებზე დაფუძნებული მკაფიო მოლოდინები. ყველაზე გავრცელებული მეთოდები:

  1. ** 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("დროის გასვლის მოლოდინი.")
    
  2. ** long polling ** (გრძელი გამოკითხვა): კლიენტი აგზავნის მოთხოვნას და სერვერი ინარჩუნებს კავშირს, სანამ მონაცემები არ გამოჩნდება ან დროის შეზღუდვა არ ამოიწურება.

  3. ** Webhooks ** (უკანასკნელი ზარები): API ახორციელებს გამოძახებას მითითებულ URL-ზე მომხმარებლის მხრიდან კონკრეტული მოვლენის დროს. ეს მოითხოვს საჯაროდ ხელმისაწვდომი ბოლო წერტილის არსებობას მომხმარებლის მხარეს Webhook-ის მისაღებად.

    • შესრულება:
      • Webhook URL-ის რეგისტრაცია სხვა სერვისის API-ის მეშვეობით.
      • კოდის დაწერა მომხმარებლის მხარეს HTTP POST მოთხოვნებისთვის Webhook-ისგან მიღებისა და დამუშავებისთვის.
      • მონაცემების მიღების (ძირითადად ასინქრონული) მოლოდინი Webhook-ის მეშვეობით.

მეთოდის არჩევა დამოკიდებულია API-ის არქიტექტურაზე და ტესტის მოთხოვნებზე. Polling არის ყველაზე გავრცელებული და მარტივი რეალიზაცია უმეტეს REST API-ებისთვის.