אם רוצים לגשת אל Cloud Endpoints API מלקוח Python, צריך להשתמש בספריית הלקוח של Google APIs Python. אם ה-API לא דורש אימות, הלקוח יכול לגשת ל-API כמו שמוצג בקוד הדוגמה הבא:
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()
בדוגמה של הקוד:
-
api_rootהיא כתובת ה-URL הבסיסית של חזית האתר שדרכה נחשפות שיטות ה-API. בדרך כלל, כתובת ה-URL היאhttps://YOUR_PROJECT_ID.appspot.com/_ah/apiכאשרYOUR_PROJECT_IDמייצג את Google Cloud -
apiהוא שם ה-API. -
versionהיא הגרסה של ה-API של ה-Backend.
גישה לממשק API שנדרש אימות
אם נדרש אימות ל-API של ה-Backend, צריך להשתמש גם בספריית הלקוח של Google APIs Python וגם בספריית הלקוח של OAuth2.0.
הלקוח יכול לקבל את ההרשאה הנדרשת ולגשת ל-API באמצעות קוד שדומה לקוד הבא:
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)
שימו לב שצריך להגדיר את SCOPE כמו שמוצג. מידע על
YOUR_CLIENT_ID ועל
YOUR_CLIENT_SECRET זמין במאמר בנושא יצירת מזהי לקוח.