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).
credentials.json
{"key": "your_api_key"}
programı kapsamında- Ö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/shipping:designShippingNetwork"
# 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()
Son tarih 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şın müşteri teslim tarihlerini API'yi çağıran uygulama (VEYA API'sini çağıran uygulama) yanıt almayı beklemeyin.
Aşağıdaki kod snippet'i, isteğinin oturum başlıklarında hem istemci hem de sunucu için son tarihi belirler. İ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 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)