У меня возникли проблемы с пониманием концепции «открытия API», используемой в продуктах и услугах Google. Вот некоторые Python код, который использует указанную услугу открытия доступа к Google Cloud Зрение:Что такое Google API Discovery?
from googleapiclient.discovery import build
from oauth2client.client import GoogleCredentials
…
API_DISCOVERY_FILE = 'https://vision.googleapis.com/$discovery/rest?version=v1'
hlh = httplib2.Http()
credentials = GoogleCredentials.get_application_default().create_scoped(
['https://www.googleapis.com/auth/cloud-platform'])
credentials.authorize(hlh)
service = build(serviceName='vision', version='v1', http=hlh, discoveryServiceUrl=API_DISCOVERY_FILE)
service_request = service.images().annotate(body={ <more JSON code here> })
Вот еще один фрагмент кода Python, который также получает доступ к Google Cloud Vision, но не использует обнаружение API и работает просто отлично:
import requests
…
ENDPOINT_URL = 'https://vision.googleapis.com/v1/images:annotate'
response = requests.post(ENDPOINT_URL,
data=make_image_data(image_filenames),
params={'key': api_key},
headers={'Content-Type': 'application/json'})
Что я не могу обернуть вокруг этого вопроса: вам нужно знать детали API, которые вы собираетесь звонить, чтобы вы могли адаптировать вызов; это очевидно. Итак, как бы обнаружение API помогло вам во время вызова, после того, как вы уже подготовили код для вызова этого API?
PS: Я смотрю на следующие ресурсы до публикации этого вопроса:
https://developers.google.com/discovery/v1/getting_started
https://developers.google.com/discovery/v1/using
Я видел this ответил на вопрос, но хотел бы получить дополнительную проницательность.
Теперь переключите версии API, динамически. Путь обнаружения потенциально перенаправит вас на другой URL-адрес, если Google почувствует, что это необходимо для новой версии. Ваш жесткий путь URL-адреса, с другой стороны. –
@MartijnPieters Спасибо. Я вижу, поэтому служба обнаружения помогает с изменениями конечных точек. Предоставляет ли он информацию об изменениях в формате вызова API? (Необходимые аргументы, характер возвращаемого значения.) – Sabuncu
Я не знаю, я не изучил их API обнаружения в глубину. Это, безусловно, указывает на то, что открытость API-интерфейсов является целью; например вы должны создать какой-то графический интерфейс, который позволит вам изучить API, предлагаемые Google с помощью API-интерфейсов обнаружения. Однако, насколько подробно предоставлен API, я не изучал. –