Ví dụ về cách lên lịch ca làm

Ví dụ sau đây cho thấy cách gọi API bằng thư viện requests của Python, sử dụng khoá API để xác thực. Cách sử dụng:

  • Cài đặt thư viện requests Python. Từ dòng lệnh: pip install requests.
  • Lưu chương trình Python sau vào máy tính và đặt tên là example.py.
  • Lưu tệp example_request.json vào cùng thư mục với tệp (đây là yêu cầu JSON mẫu).
  • Tạo tệp credentials.json trong cùng thư mục với chương trình của bạn, với {"key": "your_api_key"}
  • Chạy ví dụ từ dòng lệnh: python example.py.

# example.py
import json
import requests

def run_example():
    """Calls the OR API to solve a shift scheduling problem."""
    
    # Endpoint for the workforce scheduling solver in the OR API.
    end_point = "https://optimization.googleapis.com/v1/scheduling:solveShiftScheduling"
    
    # Read the API Key from a JSON file with the format:
    # {"key": "your_api_key"}
    with open("credentials.json") as f:
        credentials = json.load(f)
        api_key = credentials["key"]

    # Load the JSON file with the request.
    with open("example_request.json", "r") as f:
        json_request = json.load(f)

    # Call the API post method.
    response = requests.post(f"{end_point}?key={api_key}", json=json_request)

    # Process the response.
    if response.ok:
        solution = json.loads(response.content)
        with open("example_response.json", "w") as f:
            json.dump(solution, f, indent=2)
        print(solution)
    else:
        error = json.loads(response.content)["error"]
        print(f'Status code {error["code"]}: {error["message"]}')

if __name__ == "__main__":
    run_example()

Làm cách nào để đặt thời hạn?

Thời hạn xác định khoảng thời gian tối đa mà lệnh gọi đến API cần. Người dùng có thể đặt thời hạn cho cả máy khách và máy chủ. Trong ngữ cảnh của API OR, việc thời hạn của máy chủ hữu ích hơn vì thời hạn này cho máy chủ phụ trợ biết cách thời gian để tiếp nhận yêu cầu, chạy trình giải cơ bản và trả về một của bạn. Ngược lại, thời hạn của khách hàng lại hữu ích khi đặt ra thời hạn tối đa ứng dụng khách (tức là ứng dụng gọi API OR) sẽ chuyển đến đợi phản hồi trước khi hết thời gian chờ.

Đoạn mã sau đây đặt cả thời hạn của máy khách và máy chủ trong tiêu đề phiên của yêu cầu. Thời hạn của ứng dụng được đặt thành 60 giây. Hạn chót của máy chủ phải nhỏ hơn hạn chót của ứng dụng để tính đến chi phí giao tiếp. Ở đây, chúng ta đặt thời hạn của máy chủ là 95% ứng dụng nhưng thời hạn này có thể thay đổi tuỳ thuộc vào đơn đăng ký. Lưu ý rằng API phím cũng được chuyển sang tiêu đề phiên để thực hiện lệnh gọi session.post(...) rõ ràng hơn.



# Call the API post method.
session = requests.Session()
client_deadline_seconds = 60
server_deadline_seconds = 0.95 * client_deadline_seconds
session.headers = {
    "Content-Type": "application/json",
    "Connection": "keep-alive",
    "Keep-Alive": f"timeout={client_deadline_seconds}, max=1",
    "X-Server-Timeout": f"{server_deadline_seconds}",
    "X-Goog-Api-Key": api_key,
}
response = session.post(end_point, json=json_request, timeout=client_deadline_seconds)