适用于 App Engine 的 Cloud Endpoints Frameworks 命令行工具

本页面介绍了如何从后端服务器生成客户端库 使用 Endpoints Frameworks 命令行工具来配置 API。任何 Java 或 Android 应用都可以使用此库来调用 API。

您可以生成客户端库软件包,以允许应用使用 Endpoints Frameworks 命令行工具访问您的 API。生成客户端库时,Endpoints Frameworks 命令行工具会自动生成一个发现文档,用于描述您的 API 的表面。

要获取 Endpoints Frameworks 命令行工具,请从 Maven Central Repository 下载 endpoints-framework-tools。将此 ZIP 文件的内容解压缩后,此工具位于 endpoints-framework-tools-2.2.1/bin/ 目录中。

通过 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 客户端软件包。

命令行语法

在使用 Endpoints Frameworks 命令行工具之前,您必须先构建后端项目,因为此工具要求使用已编译的二进制文件。如果您不想使用默认的 --war="./war",则可以选择提供指向构建目标输出目录(包含 WEB-INF 目录和已编译的 java 类)的 --war= 选项。

基本语法如下所示:

/path-to/endpoints-framework-tools-2.2.1/bin/endpoints-framework-tools \
    get-client-lib OPTIONS CLASS_NAME

其中:

  • OPTIONS(如果提供)是选项表格中显示的一项或多项。
  • CLASS_NAME 是 API 的完全限定类名称。

例如:

/path-to/endpoints-framework-tools-2.2.1/bin/endpoints-framework-tools \
    get-client-lib --war=target/echo-1.0-SNAPSHOT -bs gradle com.example.echo.Echo

其中 target/echo-1.0-SNAPSHOT 是目标构建目录(包含 WEB-INF 和已编译和后端类)的相对路径或绝对路径。

选项

您可以使用以下选项:

选项名称 说明 示例
build-system 用于指定应生成哪种类型的客户端软件包。可指定 gradle(生成 Android Gradle 客户端软件包)、maven(生成 Maven 客户端软件包)或 default(或省略此选项)(生成仅包含依赖项库和源代码 jar 的软件包)。 --build-system=gradle
-bs gradle
war 设置指向构建目标目录 WEB-INF(包含 appengine-web.xml 和其他元数据)的路径。
默认值:./war
--war=target/echo-1.0-SNAPSHOT
-w target/echo-1.0-SNAPSHOT
output 设置将输出写入到的目录。
默认值:从其中调用工具的目录。
--output=/mydir
-o /mydir

受支持的客户端平台

Endpoints Frameworks 命令行工具生成的客户端软件包支持以下平台: