Jika ingin mengakses Cloud Endpoints API dari klien Python, Anda harus menggunakan Library Klien Python Google API. Jika API tidak memerlukan autentikasi apa pun, klien Anda dapat mengakses API seperti yang ditunjukkan dalam contoh kode berikut:
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()
Dalam contoh kode:
api_root
adalah URL root frontend tempat metode API Anda ditampilkan. Biasanya, URL-nya adalahhttps://YOUR_PROJECT_ID.appspot.com/_ah/api
denganYOUR_PROJECT_ID
mewakili project Google Cloud Andaapi
adalah nama API.version
adalah versi API backend.
Mengakses API yang memerlukan Autentikasi
Jika API backend memerlukan autentikasi, Anda harus menggunakan Library Klien Python Google API dan Library Klien OAuth2.0.
Klien Anda bisa mendapatkan otorisasi yang diperlukan dan mengakses API dengan menggunakan kode yang mirip dengan berikut ini:
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)
Perhatikan bahwa SCOPE
harus ditetapkan seperti yang ditunjukkan. Untuk mengetahui informasi tentang
YOUR_CLIENT_ID
dan
YOUR_CLIENT_SECRET
, lihat
Membuat client ID.