כלי שורת הפקודה של Cloud Endpoints Frameworks for App Engine

בדף הזה מוסבר איך להשתמש בכלי של שורת הפקודה Endpoints Frameworks כדי ליצור ספריית לקוח מ-Python backend API (הקוד שפועל בשרת). כל אפליקציית Java או Android יכולה להשתמש בספרייה הזו כדי לקרוא ל-API.

אתם יכולים ליצור חבילות של ספריות לקוח שמאפשרות לאפליקציות לגשת ל-API שלכם באמצעות כלי שורת הפקודה של Endpoints Frameworks. כשיוצרים ספריית לקוח, כלי שורת הפקודה של Endpoints Frameworks יוצר באופן אוטומטי מסמך Discovery שמתאר את הממשק של ה-API.

כלי שורת הפקודה של Endpoints Frameworks,‏endpointscfg.py זמין בספריית Endpoints Frameworks. מידע על התקנת ספריית Endpoints Frameworks באמצעות pip זמין במאמר התקנת ספריית Endpoints Frameworks. שימו לב: הפקודות הבאות מניחות שהספרייה Endpoints Frameworks מותקנת בספרייה בשם lib. בנוסף, ההוראות מניחות שיצרתם את ה-API של ה-Backend. במדריך בנושא Endpoints Frameworks ל-Python יש דוגמה לשימוש בכלי שורת הפקודה של Endpoints Frameworks בקוד לדוגמה.

יצירת חבילה של ספריית לקוח מ-API

אתם יכולים להשתמש בכלי שורת הפקודה של Endpoints Frameworks כדי ליצור את סוגי חבילות הלקוח הבאים:

  • ‫Maven: החבילה הזו כוללת קובץ pom.xml עם התלויות של Endpoints Frameworks ושל ספריית הלקוח של Google API. קובץ readme.html מספק מידע מפורט על מה שצריך להוסיף לקובץ pom.xml עבור סוגים שונים של אפליקציות לקוח, ועל האופן שבו אפשר ליצור ספריית לקוח עבור ה-API באמצעות Maven.

  • ‫Gradle: החבילה הזו כוללת קובץ build.gradle עם התלויות ב-Endpoints Frameworks וב-Google API Client Library. קובץ readme.html מספק מידע מפורט על מה שצריך להוסיף לקובץ build.gradle עבור סוגים שונים של אפליקציות לקוח, ועל אופן יצירת ספריית לקוח עבור ה-API באמצעות Gradle.

  • חבילת לקוח ברירת מחדל: החבילה הזו מכילה את כל ספריות התלות ואת קובץ source.jar שנוצר, שהוא ספריית Java שבה אתם משתמשים בלקוח כדי לקרוא ל-API. החבילה הזו מספקת ללקוח את כל היכולות של ספריית הלקוח של Google API, כולל OAuth. בקובץ readme.html מפורטים הקבצים שנדרשים לסוגים שונים של אפליקציות לקוח ופרטים נוספים לשימוש בספריית הלקוח..jar

אם אתם משתמשים בספריית הלקוח עם אפליקציית Android, מומלץ להשתמש בחבילת לקוח של Gradle.

יצירה של ספריית הלקוח

כדי ליצור את ספריית הלקוח:

  1. עוברים לספרייה שמכילה את קובץ ה-app.yaml של ה-API ואת מחלקות שירות ה-API. לחלופין, אפשר להשתמש באפשרות --application כדי לציין מיקום אחר של ספריית האפליקציה.

  2. מפעילים את כלי שורת הפקודה של Endpoints Frameworks באופן הבא:

    lib/endpoints/endpointscfg.py get_client_lib java -bs gradle main.EchoApi
    

    כאשר main הוא המחלקה שמכילה את ה-API ו-EchoApi הוא שם ה-API.

  3. מחכים עד שהכלי ייצור את ספריית הלקוח. אם הפעולה הצליחה, הכלי יציג הודעה דומה להודעה הבאה:

    API client library written to ./echo-v1.zip
    
  4. מוסיפים את קובץ ה-JAR של ספריית הלקוח לאפליקציית Android.

  5. חוזרים על השלבים הקודמים בכל פעם שמשנים את קוד ה-API.

חבילת ספריית הלקוח נכתבת לספרייה הנוכחית, אלא אם מציינים ספריית פלט אחרת באמצעות האפשרות output.

תחביר של שורת פקודה

התחביר הבסיסי הוא כזה:

/path-to/your-app/lib/endpointscfg.py get_client_lib TARGET_LANG OPTIONS CLASS_NAME

where:

  • TARGET_LANG מציין את סוג חבילת הלקוח שרוצים ליצור. בשלב הזה, צריך לספק את הערך java (ללקוחות Java כמו Android).
  • OPTIONS, אם מציינים אותו, הוא אחד או יותר פריטים שמוצגים בטבלת האפשרויות
  • CLASS_NAME הוא שם המחלקה המלא של ה-API.

אפשרויות

אפשר להשתמש באפשרויות הבאות:

שם האפשרות תיאור דוגמה
application כברירת מחדל, הכלי יוצר את ה-API מהקצה העורפי בספרייה הנוכחית.
אם רוצים ליצור את ה-API מספרייה אחרת, צריך לציין את הנתיב לספרייה שמכילה את המחלקות app.yaml והשירות שמיישמות את ה-API.
--application /my_path/my_api_dir
build-system מאפשר לציין איזה סוג של חבילת לקוח צריך ליצור. מציינים gradle לחבילת לקוח של Gradle ל-Android,‏ maven לחבילת לקוח של Maven או default (או פשוט משמיטים את האפשרות הזו) לחבילה שמכילה רק את ספריות התלות ואת קובץ ה-JAR של המקור. --build-system=gradle
-bs gradle
hostname מציינת את מסמך Discovery rootURL.
האפשרות הזו מבטלת את ברירת המחדל שנגזרת מהערך application בתוך פרויקט ה-API של ה-Backend‏ app.yaml ([YOUR_APP_ID].appspot.com) ומהערך hostname שמוגדר ב-decorator של ה-API.
אחד השימושים באפשרות הזו הוא לספק את שם המארח localhost כ-rootURL לבדיקות מקומיות.
--hostname localhost
format אל תציינו את הערך הזה כי הערך הנתמך היחיד הוא ערך ברירת המחדל, rest עבור REST. לא צריך, אפשר להשתמש בברירת המחדל.
output הגדרת הספרייה שבה ייכתב הפלט.
ברירת מחדל: הספרייה שממנה מופעל הכלי.
--output /mydir
-o /mydir

פלטפורמות לקוחות נתמכות

הפלטפורמות הבאות נתמכות בחבילת הלקוח שנוצרת על ידי כלי שורת הפקודה של Endpoints Frameworks:

יצירת מסמך OpenAPI מ-API

הכלי endpointscfg.py מספק פקודה ליצירת מסמך OpenAPI מ-API backend. התחביר של הפקודה הוא:

lib/endpoints/endpointscfg.py get_openapi_spec
    [-h]
    [-a APPLICATION]
    [--hostname HOSTNAME]
    [-o OUTPUT]
    service [service ...]

positional arguments:
  service               Fully qualified service class name.

optional arguments:
  -h, --help            Show this help message and exit.
  -a APPLICATION, --application APPLICATION
                        The path to the Python App Engine application.
  --hostname HOSTNAME   Default application hostname, if none is specified for the API service.
  -o OUTPUT, --output OUTPUT
                        The directory to store output files.
  --x-google-api-name   Add the 'x-google-api-name' field to the generated OpenAPI document.

לדוגמה, באמצעות הדוגמה של echo:

$ lib/endpoints/endpointscfg.py get_openapi_spec --hostname=echo-example.appspot.com main.EchoApi
OpenAPI spec written to ./echov1openapi.json