我无法理解Google产品/服务中使用的“API发现”概念。以下是一些使用上述发现服务访问Google Cloud Vision的Python代码:
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已回答的问题,但希望有更多的见解。
答案 0 :(得分:1)
注意:我缺乏您提到的Google API的知识。
您需要了解您将要使用的API的详细信息 打电话,以便你可以定制电话;这很明显。
理论上来说,这只是第一次呼叫所需要的,这是对启动服务的调用,例如列出许多资源。从那以后,您可以拥有分支到底层资源及其允许的方法(如果您愿意,可以使用动词)。所以这个例子说明了树状的结构。如果您提供GUI以通用方式浏览此可发现性,那么一个人就可以决定该做什么。
在实践中,一旦你拥有大量的资源和它们之间的各种相互关系,这很难做到。