本页面介绍如何设置开发环境,以便使用适用于 App Engine 标准环境的 Cloud Endpoints Frameworks 构建和部署后端 API。本页面使用 Endpoints Frameworks 2.0 版框架 代码示例,说明入门所需的基本软件和组件。
您可能需要使用
endpoints-skeleton-archetype
或此处所述的 hello-endpoints-archetype
使用 Apache Maven 和 App Engine 插件(基于 Google Cloud CLI)
创建一个新的 Endpoints Frameworks 2.0 版项目。
若想更好地了解使用 Endpoints Frameworks 部署示例 API 所需的步骤,请参阅《使用入门:在 App Engine 上使用 Endpoints Frameworks》教程。
准备工作
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
- 记下 Google Cloud 项目 ID,因为以后需要它。
安装和配置所需的软件
- 如果您尚未安装 Java 8,请从 Oracle 网站下载并安装 Java Development Kit (JDK)。
- 安装 Maven 或 Gradle:
Maven
- 下载 Apache Maven 3.3.9 或更高版本
- 为您的本地开发环境安装并配置 Maven。
Gradle
- 安装并初始化 Google Cloud CLI。
- 运行以下命令:
- 确保 gcloud CLI 有权访问您在 Google Cloud 上的数据和服务:
gcloud auth login
- 使用应用默认凭据:
gcloud auth application-default login
- 安装 Google Cloud SDK
app-engine-java
组件:gcloud components install app-engine-java
- 更新为 Google Cloud SDK 和所有组件的最新版本:
gcloud components update
- 确保 gcloud CLI 有权访问您在 Google Cloud 上的数据和服务:
- 创建一个 App Engine 应用:
-
将默认项目设置为您的 Google Cloud 项目 ID:
gcloud config set project YOUR_PROJECT_ID
将
YOUR_PROJECT_ID
替换为您的 Google Cloud 项目 ID。如果您有其他 Google Cloud 项目,并且想要 使用gcloud
管理它们,请参阅 管理 gcloud CLI 配置。 - 选择要在其中创建 App Engine 应用的区域。请参阅 App Engine 位置查看区域列表。
- 创建 App Engine 应用。将
YOUR_PROJECT_ID
替换为您的 Google Cloud 项目 ID,并将YOUR_REGION
替换为您要在其中创建 App Engine 应用的区域。gcloud app create \ --project=YOUR_PROJECT_ID \ --region=YOUR_REGION
-
将默认项目设置为您的 Google Cloud 项目 ID:
获取 Endpoints Frameworks 框架示例
Endpoints Frameworks 2.0 版框架示例包含 Maven 和 Gradle 所需的构建脚本。该示例还包含开始创建第一个 API 所需的文件。
将示例代码库克隆到您的本地机器:
git clone https://github.com/GoogleCloudPlatform/java-docs-samples
切换到包含 Endpoints Frameworks 框架示例的目录:
cd java-docs-samples/appengine-java8/endpoints-v2-skeleton/
该示例使用以下目录结构:
MyApi.java
包含一个空类,您可使用此空类开始编写 API。请参阅 echo 示例 获取示例代码,以便快速上手。appengine-web.xml
定义了将 API 部署到 使用 Java 8 的 App Engine 标准环境。pom.xml
包含 Maven 用于构建 项目并将 API 部署到 App Engine。build.gradle
包含 Gradle 用来构建 项目并将 API 部署到 App Engine。
配置构建文件
本部分介绍示例代码中包含的 Maven pom.xml
和 Gradle build.gradle
文件。您可以随时使用构建文件来开始创建 API,但需要输入您的 Google Cloud 项目 ID 以用作主机名。
关于最低配置
本部分介绍构建文件中所需的最低配置。
Maven
最低依赖项
下面显示了开始操作时 pom.xml
中必需的最低依赖项:
endpoints-framework
依赖项包含用于创建 API 的必需类。- 您需要使用 App Engine 标准 API SDK (
appengine-api-sdk
) 将项目部署到 App Engine 标准环境。 - 构建 Servlet 需要使用标准
javax.servlet
软件包。 - 支持依赖项注入需要使用标准
javax.inject
软件包。
应用插件
应用以下插件以启用它们:
maven-war-plugin
扩展java
插件以支持组合 Web 应用。- 在 App Engine 上运行 API 需要使用
appengine-maven-plugin
。 endpoints-framework-maven-plugin
提供用于构建 Endpoints Frameworks 项目的任务和配置。
Gradle
插件依赖项
以下代码显示了构建 API 所需的插件:
- Endpoints Frameworks Gradle 插件用于生成 OpenAPI 文档以及生成客户端库。
- 将项目部署到 App Engine 需要 App Engine Gradle 插件。
应用插件
在 Gradle 构建脚本中应用以下插件以启用它们:
java
插件可为项目添加特定于 Java 的编译和构建步骤。war
扩展java
插件以支持组合 Web 应用。endpoints-framework-server
插件可为 Endpoints Frameworks Gradle 插件提供服务器端支持。- 要在 App Engine 上运行 API,必须使用
appengine
插件。
项目依赖项
项目使用以下依赖项:
endpoints-framework
依赖项包含用于创建 API 的必需类。- 将项目部署到 App Engine 标准环境需要使用 App Engine 标准 API SDK (
appengine-api-sdk
)。 - 构建 Servlet 需要使用标准
javax.servlet
软件包。 - 支持依赖项注入需要使用标准
javax.inject
软件包。
为您的服务定义主机名
Endpoints Frameworks 使用符合 DNS 规范的名称来唯一地识别服务。由于 Google Cloud 项目 ID 必须保持全局唯一,因此建议您将 Google Cloud 项目 ID 用作 API 服务名称的一部分。
您必须将 Google Cloud 项目 ID 添加到构建文件中,以配置服务的主机名。主机名应采用以下格式:
YOUR_PROJECT_ID.appspot.com
将 API 部署到 App Engine 时,系统会自动创建名称格式为 YOUR_PROJECT_ID.appspot.com
的 DNS 条目。主机名既是 Cloud Endpoints 服务的名称,也是您用于向 API 发送请求的域名。
Maven
在 hostname
字段中,将 YOUR_PROJECT_ID
替换为您的 Google Cloud 项目 ID。
Gradle
将变量 projectID
设置为您的 Google Cloud 项目 ID。例如:def projectId = 'example-project-12345'
配置 Endpoints Servlet
Endpoints Servlet 会处理传入请求,并将这些请求转发到 App Engine 上运行的后端服务。为了实现由 Endpoints 管理您的 API,您必须使用 Endpoints Servlet。
如需详细了解 web.xml
,请参见部署描述符:web.xml
。
配置 App Engine 部署
在部署 API 时,appengine-web.xml
文件用于定义 App Engine 标准环境配置。请参阅
appengine-web.xml
参考文档
。