Время ответа API Карт Google очень велико - PullRequest
0 голосов
/ 21 апреля 2020

Я пишу API, который вызывает четыре разных API и объединяет результаты. Он использует API восхода и заката солнца для определения времени заката / восхода, использует DarkSky API для погоды и использует 2 API Google Maps. Один для погоды и один для высоты.

Я заметил, что два API Google Maps поддерживают все остальное. Хотя и восход, и API DarkSky регулярно завершаются менее чем за 1/2 секунды - для карт Google требуется более 3 секунд для каждого из этих двух вызовов.

Если я просто нажму API в своем браузере, похоже, быть намного быстрее Что может быть причиной задержки времени отклика, когда моя программа python поражает API?

Ниже приведена простая программа, которую я написал для проверки повторяемости проблемы и того, что она произошла независимо от остальной части моего кода. .

import timeit

N = 5

sstime = timeit.timeit('request = requests.get(sunset_url)',
setup='import requests; sunset_url = "https://api.sunrise-sunset.org/json?lat=38.116947&lng=-122.925357&formatted=0&date=2020-04-20"',
number=N)

dstime = timeit.timeit('request = requests.get(darksky_url)',
setup='import requests; darksky_url = "https://api.darksky.net/forecast/<api-key>/38.116947,-122.925357,1587171581"',
number=N)

# TODO: Both GMaps calls VERY slow... why?
gmdtime = timeit.timeit('request = requests.get(dist_url)',
setup='import requests; dist_url = "https://maps.googleapis.com/maps/api/distancematrix/json?units=imperial&origins=37.7360512,-122.4997348&destinations=38.116947,-122.925357&key=<api-key>"',
number=N)

gmetime = timeit.timeit('request = requests.get(elevation_url)',
setup='import requests; elevation_url = "https://maps.googleapis.com/maps/api/elevation/json?locations=38.116947,-122.925357&key=<api-key>"',
number=N)

print("Sunset API:", round(sstime/N,3))
print("DarkSky API:", round(dstime/N,3))
print("GMaps Dist API:", round(gmdtime/N,3))
print("GMaps Elev API:", round(gmetime/N,3))

Наблюдаемое время выполнения:

# Sunset API: 0.196
# DarkSky API: 0.496
# GMaps Dist API: 3.206
# GMaps Elev API: 3.273
...