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)