您可以產生用戶端程式庫套裝組合,允許應用程式透過 Endpoints Frameworks 指令列工具存取您的 API。您產生用戶端程式庫時,Endpoints Frameworks 指令列工具會自動產生用來描述 API 介面的探索文件。
Endpoints Frameworks 程式庫提供了 Endpoints Frameworks 指令列工具 endpointscfg.py
。如要瞭解如何使用 pip
來安裝 Endpoints Frameworks,請參閱安裝 Endpoints Frameworks 程式庫一文。請注意,以下指令假設您已先將 Endpoints Frameworks 程式庫安裝到名為 lib
的目錄中。此外,下文的操作說明則假設您已建立後端 API。如需以範例程式碼使用 Endpoints Frameworks 指令列工具的相關範例,請參閱 Python 適用的 Endpoints Frameworks 教學課程。
從 API 產生用戶端程式庫套裝組合
您可以使用 Endpoints Frameworks 指令列工具來產生下列類型的用戶端套裝組合:
Maven:這個套裝組合包含一個
pom.xml
檔案,其中具有 Endpoints Frameworks 和 Google API 用戶端程式庫依附元件。readme.html
檔案針對不同類型的用戶端應用程式,詳述您必須在pom.xml
檔案中新增哪些項目,以及如何使用 Maven 為您的 API 建構用戶端程式庫。Gradle:這個套裝組合包含一個
build.gradle
檔案,其中具有 Endpoints Frameworks 和 Google API 用戶端程式庫依附元件。readme.html
檔案針對不同類型的用戶端應用程式,詳述您必須在build.gradle
檔案中新增哪些項目,以及如何使用 Gradle 為您的 API 建構用戶端程式庫。預設的用戶端套裝組合:這個套裝組合包含所有依附元件程式庫和系統產生的
source.jar
檔案,該檔案即為您在用戶端中用來呼叫 API 的 Java 程式庫。這個套裝組合可為您的用戶端提供所有 Google API 用戶端程式庫功能 (包括 OAuth)。readme.html
檔案列出了不同用戶端應用程式類型需要的.jar
檔案,以及使用用戶端程式庫的其他詳細資料。
如果您將用戶端程式庫與 Android 應用程式搭配使用,建議您使用 Gradle 用戶端套裝組合。
產生用戶端程式庫
如需產生用戶端程式庫:
將目錄變更為包含 API
app.yaml
檔案以及 API 服務類別的目錄。您也可以使用--application
選項指定應用程式目錄的其他位置。叫用 Endpoints Frameworks 指令列工具的方式類似以下所示:
lib/endpoints/endpointscfg.py get_client_lib java -bs gradle main.EchoApi
其中
main
是包含 API 的類別,EchoApi
是您的 API 名稱。等待工具產生用戶端程式庫;成功時,工具將會顯示類似以下訊息:
API client library written to ./echo-v1.zip
將用戶端程式庫 JAR 新增至您的 Android 應用程式。
每次修改 API 程式碼時都重複執行上述步驟。
除非使用 output
選項指定其他輸出目錄,否則系統會將用戶端程式庫套裝組合寫入目前的目錄。
指令列語法
基本語法如下所示:
/path-to/your-app/lib/endpointscfg.py get_client_lib TARGET_LANG OPTIONS CLASS_NAME
其中:
TARGET_LANG
指定您要建立的用戶端套裝組合類型。目前,您需要提供java
値 (適用於 Java 用戶端,例如 Android)。OPTIONS
是「選項」表格中顯示的一或多個項目 (若有提供)。CLASS_NAME
是您 API 的完整類別名稱。
選項
您可以採用下列選項:
選項名稱 | 說明 | 範例 |
---|---|---|
application |
根據預設,系統會從目前目錄中的後端 API 產生工具。 如要使用其他目錄來產生工具,請指定內含 app.yaml 以及用於實作 API 的服務類別的目錄路徑。 |
--application /my_path/my_api_dir |
build-system |
讓您指定要產生的用戶端套裝組合類型。為 Android 適用的 Gradle 用戶端套裝組合指定 gradle ,為 Maven 用戶端套裝組合指定 maven ,或者針對只包含相依元件程式庫和來源 jar 的套裝組合指定 default (也可省略這個選項)。 |
--build-system=gradle -bs gradle |
hostname |
指定探索文件 rootURL 。後端 API 專案 app.yaml ([YOUR_APP_ID].appspot.com ) 中的 application 項目以及 API 修飾符定義的 hostname 所衍生的預設值,均會遭此選項覆寫。此選項的用途之一是提供主機名稱 localhost 做為本機測試的 rootURL。 |
--hostname localhost |
format |
由於支援的值為預設值 (如為 REST 即是 rest ),因此請勿指定此項目。 |
不需要,使用預設值。 |
output |
設定要將輸出內容寫入到哪個目錄。 預設值:叫用工具所在的目錄。 |
--output /mydir -o /mydir |
支援的用戶端平台
Endpoints Frameworks 指令列工具產生的用戶端套裝組合支援下列平台:
- Java 7 以上版本:
- Android 1.6 以上版本。
- App Engine。
從 API 產生 OpenAPI 文件
endpointscfg.py
工具提供了一個指令,可從 API 後端產生 OpenAPI 文件。指令的語法為:
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