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. Önce API yöntemini seçin
İlgilendiğiniz konular:
Denemek için:
- Python
requestskitaplığını yükleyin. Komut satırınızdan:pip install requests. - Aşağıdaki Python programını
example.pyolarak adlandırarak bilgisayarınıza kaydedin. - Örnek JSON indir
Adlandırın
example_request.json - Ö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/"
# 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 çağrısının sürmesi gereken maksimum gerçek zamanını 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. İlgili içeriği oluşturmak için kullanılan
sunucu son tarihi, hesaba katılması gereken istemci son tarihinden kısa olmalıdır
ek iletişim yükü. Burada sunucu son tarihini istemci son tarihinin %95'i olarak belirledik ancak bu, uygulamaya bağlı olarak değişiklik gösterebilir. session.post(...) çağrısını daha net hale getirmek için API anahtarının oturum üstbilgilerine de taşındığını unutmayı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)