Cloud Endpoints Frameworks 提供的 API 管理功能可与 Extensible Service Proxy (ESP) 为 Cloud Endpoints 提供的功能相媲美。Endpoints Frameworks 内置了一个 API 网关,该网关会拦截所有请求并执行所有必要的检查(例如身份验证),然后将请求转发到 API 后端。当后端响应时,Endpoints Frameworks 会收集遥测数据并进行报告。您可以在 Google Cloud 控制台中的 Endpoints > Services 页面上查看 API 的指标。
Endpoints Frameworks 中提供了以下 API 管理功能:
要将您的 API 交给 Endpoints 来管理,您必须根据 2.0 版 OpenAPI 规范部署一个用于描述您的 API 的 OpenAPI 文档。 本页面介绍如何生成和部署 OpenAPI 文档,以借助 Endpoints 来管理您的 API。
如果您未添加 API 管理功能,您的 API 仍会处理请求,但它不会显示在 Google Cloud 控制台中的 Endpoints > Services 页面上,并且 Endpoints 提供的功能(例如日志记录、监控和设置配额)也不可用。
要为您的 API 添加 API 管理功能,请执行以下操作:
按照配置构件文件中的说明来设置 Maven
pom.xml
文件或 Gradlebuild.gradle
文件。确保您在构建文件中设置 Google Cloud 项目 ID。
Maven
搜索
<endpoints.project.id>
,并将YOUR_PROJECT_ID
替换为您的 Google Cloud 项目 ID。例如:<endpoints.project.id>example-project-12345</endpoints.project.id>
Gradle
-
搜索
def projectId
,并将YOUR_PROJECT_ID
替换为您的 Google Cloud 项目 ID。例如:def projectId = 'example-project-12345'
- 请确保您的
build.gradle
文件包含replaceProjectId
任务,该任务会在appengine-web.xml
和web.xml
文件中设置项目 ID。
-
搜索
在 API 项目的
web.xml
文件中,添加 API 管理 Servlet 过滤器配置:修改 API 项目的构建配置:
Maven
-
添加 API 管理依赖项:
-
添加可用于生成客户端库和 OpenAPI 文档
openapi.json
的插件:
Gradle
-
添加 API 管理依赖项:
-
声明外部依赖项,以便从 Maven Central 检索插件:
-
使用服务器端 Endpoints Frameworks Gradle 插件以生成 OpenAPI 文档:
-
配置 Endpoints 服务的名称:
-
修改依赖项后,清理项目并构建您的 API:
Maven
mvn clean mvn package
Gradle
gradle clean gradle build
生成 OpenAPI 文档
openapi.json
:Maven
mvn endpoints-framework:openApiDocs
Gradle
gradle endpointsOpenApiDocs
部署 OpenAPI 文档:
gcloud endpoints services deploy openapi.json
第一次部署
openapi.json
时,系统会创建名为YOUR_PROJECT_ID.appspot.com
的新 Endpoints 服务。成功完成后,您会看到如下所示的行,其中显示服务配置 ID 和服务名称:Service Configuration 2017-02-13r0 uploaded for service example-project-12345.appspot.com
在上面的示例中,
2017-02-13r0
是服务配置 ID。服务配置 ID 由日期戳后跟一个修订版本号组成。如果您再次部署openapi.json
,则服务配置 ID 中的修订版本号将递增。如果您需要再次显示服务配置 ID,请运行以下命令,但需将
YOUR_PROJECT_ID
替换为您的 Google Cloud 项目的 ID:gcloud endpoints configs list --service=YOUR_PROJECT_ID.appspot.com
您可以自定义 OpenAPI 文档并进行部署,而不使用生成的文档。只需将上述
openapi.json
替换为 OpenAPI 文档的路径即可。如需详细了解如何编写 OpenAPI 文档,请参阅 OpenAPI 概览。修改您的
appengine-web.xml
文件以设置环境变量的值:将
${endpoints.project.id}
替换为您的 Google Cloud 项目 ID。 例如:<env-var name="ENDPOINTS_SERVICE_NAME" value="example-project-12345.appspot.com" />
重新部署您的应用。
Maven
mvn appengine:deploy
Gradle
gradle appengineDeploy
向您的 API 发出一些请求以进行测试。
如需查看 API 指标,请在 Google Cloud 控制台中打开项目的 Endpoints > Services 页面: