Vardiya Planlama Örneği

Aşağıdaki örnekte, API'nin Python requests ile nasıl çağrılacağı gösterilmektedir kullanarak kimlik doğrulama için bir API anahtarı kullanma. Kullanmak için:

  • Python requests kitaplığını yükleyin. Komut satırınızdan: pip install requests.
  • Aşağıdaki Python programını example.py olarak adlandırarak bilgisayarınıza kaydedin.
  • example_request.json dosyasını web sitenizin adıyla aynı dizine kaydedin. program (bu örnek bir JSON isteğidir).
  • Programınızla aynı dizinde credentials.json dosyası oluşturun. Dosyada {"key": "your_api_key"}
  • Örneği komut satırından çalıştırın: 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()

Teslim tarihleri nasıl belirlenir?

Son tarih, API'ye yapılan bir çağrının alması gereken maksimum duvar süresini belirler. Bir kullanıcı hem istemci hem de sunucu teslim tarihlerini belirleyebilir. OR API bağlamında son tarih, arka uç sunucusuna ne kadar süreceğiyle ilgili bir bilgi verdiği için temel çözücüyü çalıştırması ve çürütmek için gerekenden daha az tıklayın. Buna karşılık, istemci son tarihleri, istemci uygulamasının (ör. OR API'yi çağıran uygulama) zaman aşımına uğramadan önce yanıt bekleyeceği maksimum süreyi ayarlamak için kullanışlıdır.

Aşağıdaki kod snippet'i, isteğin oturum üstbilgileri. İstemci son tarihi 60 saniye olarak ayarlanmıştır. İletişim yükü dikkate alınarak sunucu son tarihi, istemci son tarihinden daha kısa olmalıdır. Burada sunucu son tarihini istemcinin% 95'i olacak şekilde ancak başvuruya bağlı olarak değişebilir. API'nin anahtarı da session.post(...) çağrısı yapmak için oturum başlıklarına taşındı gerekir.



# 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)