Se vuoi accedere a un'API Cloud Endpoints da un client Python, devi utilizzare la libreria client Python delle API di Google. Se l'API non richiede alcuna autenticazione, il client può accedere all'API come mostrato nel seguente codice di esempio:
import pprint from googleapiclient.discovery import build def main(): # Build a service object for interacting with the API. api_root = 'https://guestbook.appspot.com/_ah/api' api = 'guestbook' version = 'v0.2' discovery_url = '%s/discovery/v1/apis/%s/%s/rest' % (api_root, api, version) service = build(api, version, discoveryServiceUrl=discovery_url) # Fetch all greetings and print them out. response = service.greetings().list().execute() pprint.pprint(response) # Fetch a single greeting and print it out. response = service.greetings().get(id='9001').execute() pprint.pprint(response) if __name__ == '__main__': main()
Nel codice di esempio:
api_root
è l'URL radice di frontend a cui sono esposti i metodi API. Di solito, l'URL èhttps://YOUR_PROJECT_ID.appspot.com/_ah/api
doveYOUR_PROJECT_ID
rappresenta il tuo Google Cloudapi
è il nome dell'API.version
è la versione dell'API di backend.
Accesso a un'API che richiede autenticazione
Se l'API di backend richiede l'autenticazione, devi utilizzare sia la libreria client Python delle API di Google sia la libreria client OAuth2.0.
Il client può ottenere l'autorizzazione richiesta e accedere all'API utilizzando un codice simile al seguente:
import argparse import pprint import sys from googleapiclient import discovery import httplib2 import oauth2client from oauth2client import tools CLIENT_ID = 'YOUR_CLIENT_ID' CLIENT_SECRET = 'YOUR_CLIENT_SECRET' SCOPE = 'https://www.googleapis.com/auth/userinfo.email' USER_AGENT = 'my-cmdline-tool/1.0' OAUTH_DISPLAY_NAME = 'My Commandline Tool' def main(argv): # Parse command line flags used by the oauth2client library. parser = argparse.ArgumentParser( description='Auth sample', formatter_class=argparse.RawDescriptionHelpFormatter, parents=[tools.argparser]) flags = parser.parse_args(argv[1:]) # Acquire and store oauth token. storage = oauth2client.file.Storage('guestbook.dat') credentials = storage.get() if credentials is None or credentials.invalid: flow = oauth2client.client.OAuth2WebServerFlow( client_id=YOUR_CLIENT_ID, client_secret=YOUR_CLIENT_SECRET, scope=SCOPE, user_agent=USER_AGENT, oauth_displayname=OAUTH_DISPLAY_NAME) credentials = tools.run_flow(flow, storage, flags) http = httplib2.Http() http = credentials.authorize(http) # Build a service object for interacting with the API. api_root = 'https://guestbook.appspot.com/_ah/api' api = 'guestbook' version = 'v0.2' discovery_url = '%s/discovery/v1/apis/%s/%s/rest' % (api_root, api, version) service = discovery.build( api, version, discoveryServiceUrl=discovery_url, http=http) # Fetch all greetings and print them out. response = service.greetings().list().execute() pprint.pprint(response) # Fetch a single greeting and print it out. response = service.greetings().get(id='9001').execute() pprint.pprint(response) if __name__ == '__main__': main(sys.argv)
Tieni presente che SCOPE
deve essere impostato come mostrato. Per informazioni su
YOUR_CLIENT_ID
e
YOUR_CLIENT_SECRET
, consulta
Creazione di ID client.