Cloud Endpoints Frameworks

Cloud Endpoints Frameworks 是一种网络框架,它适用于 App Engine 标准 Python 2.7 和 Java 8 运行时环境。 借助 Cloud Endpoints Frameworks 中提供的工具和库,您可以为自己的应用生成 REST API 和客户端库。

与其他网络框架一样,Endpoints Frameworks 也会处理应用的 HTTP 请求和响应的低层通信细节。当客户端向您的 API 发送请求时,Endpoints Frameworks 会将请求的网址路由到您的代码中用于处理该请求的函数或方法。Endpoints Frameworks 会将返回值转换为 JSON 并发送响应。您可以在源代码中添加元数据(借助 Java 中的注释或 Python 中的修饰器)。元数据用于定义应用的 REST API 的表面

Java

@ApiMethod(name = "echo")
public Message echo(Message message, @Named("n") @Nullable Integer n) {
  return doEcho(message, n);
}

在示例代码中,注释@ 字符开头。

Python

@endpoints.method(
    # This method takes a ResourceContainer defined above.
    ECHO_RESOURCE,
    # This method returns an Echo message.
    EchoResponse,
    path="echo",
    http_method="POST",
    name="echo",
)
def echo(self, request):
    output_message = " ".join([request.message] * request.n)
    return EchoResponse(message=output_message)

在示例代码中,修饰器@ 字符开头。

使用 Endpoints Frameworks,您不必使用应用来部署第三方网络服务器(例如 Apache Tomcat 或 Gunicorn)。您可以对代码进行注释或修饰,并像往常一样将应用部署到 App Engine 标准环境

API 管理

Extensible Service Proxy (ESP) 可为适用于 OpenAPI 的 Endpoints 和适用于 gRPC 的 Endpoints 提供 API 管理功能。ESP 与后端的每个实例一起在容器中运行。

由于在开发 Endpoints Frameworks 时,App Engine 标准环境不支持多容器部署,因此,Endpoints Frameworks 未使用 ESP,而是内置了一个 API 网关,该网关提供的 API 管理功能相当于 ESP 为适用于 OpenAPI 的 Endpoints 和适用于 gRPC 的 Endpoints 提供的功能。

Endpoints Frameworks 会拦截所有请求并执行所有必要的检查(例如身份验证),然后再将请求转发到 API 后端。当后端响应时,Endpoints Frameworks 会收集遥测数据并进行报告。您可以在 Google Cloud 控制台的 Endpoint 服务页面上查看 API 的指标。

可使用带有或不带 API 管理功能的 Endpoints Frameworks。不带 API 管理功能的 Endpoints Frameworks 可免费使用。API 管理功能按照 Endpoints 价格页面的规定收费。

限制

  • 仅在 App Engine 标准 Python 2.7 和 Java 8 运行时环境中支持 Endpoints Frameworks。
  • Endpoints Frameworks 不支持 App Engine 标准环境中的 Node.js、PHP 和 Go 运行时环境。
  • Endpoints Frameworks 不支持 App Engine 柔性环境。
  • Endpoints Frameworks 不支持 Cloud Functions、Compute Engine 和 Google Kubernetes Engine。

后续步骤