Cloud Endpoints Frameworks

Cloud Endpoints Frameworks は、App Engine の標準の Python 2.7 ランタイム環境と Java 8 ランタイム環境に対応するウェブ フレームワークです。Cloud Endpoints Frameworks には、アプリケーション用の REST API とクライアント ライブラリを生成するためのツールとライブラリが用意されています。

他のウェブ フレームワークと同様に、Endpoints Frameworks では、アプリケーションの HTTP リクエストとレスポンスの低レベルの通信詳細を処理します。クライアントが API にリクエストを送信すると、Endpoints Frameworks はリクエストの URL を、リクエストを処理するコード内の関数またはメソッドにルーティングします。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)により、Endpoints for OpenAPI と Endpoints for gRPC の API 管理機能が提供されます。ESP はバックエンドの各インスタンスとともに、コンテナ内で稼働します。

Endpoints Frameworks が開発中のとき、App Engine スタンダード環境はマルチコンテナのデプロイをサポートしていなかったため、Endpoints Frameworks は ESP を使用しません。代わりに、Endpoints Frameworks には API 管理機能を提供する API ゲートウェイが組み込まれています。これは Cloud Endpoints for OpenAPI と Cloud Endpoints for gRPC に対して ESP が提供している機能に匹敵します。

Endpoints Frameworks はすべてのリクエストを傍受し、API バックエンドにリクエストを転送する前に必要なチェック(認証など)を行います。バックエンドが応答すると、Endpoints Frameworks はテレメトリーを収集して報告します。API の指標は、Cloud Console の [エンドポイント] の [サービス] ページで確認できます。

Endpoints Frameworks は、API 管理機能の有無に関係なく使用できます。API 管理機能なしの Endpoints Frameworks は、無料で使用できます。API 管理機能は、Endpoints 料金ページに従って課金されます。

制限事項

  • Endpoints Frameworks は、App Engine の標準の Python 2.7 ランタイム環境と Java 8 ランタイム環境でのみサポートされています。
  • Endpoints Frameworks では、App Engine スタンダード環境の Node.js、PHP、Go ランタイム環境をサポートしていません。
  • Endpoints Frameworks では、App Engine フレキシブル環境をサポートしていません。
  • Endpoints Frameworks では、Cloud Functions、Compute Engine、Google Kubernetes Engine をサポートしていません。

次のステップ