Se vuoi accedere a un'API Cloud Endpoints da un client Python, devi utilizzare la libreria client Python per le API di Google. Se l'API non richiede alcuna autenticazione, il client può accedervi 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 principale del frontend in cui sono esposti i metodi dell'API. Di solito l'URL èhttps://YOUR_PROJECT_ID.appspot.com/_ah/api
doveYOUR_PROJECT_ID
rappresenta il tuo account Google Cloudapi
è il nome dell'API.version
è la versione dell'API di backend.
Accesso a un'API che richiede l'autenticazione
Se l'API di backend richiede l'autenticazione, devi utilizzare sia la libreria client Python per le API di Google sia la libreria client OAuth 2.0.
Il client può ottenere l'autorizzazione richiesta e accedere all'API utilizzando 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
Creare ID client.