Cloud Endpoints Frameworks は、Extensible Service Proxy(ESP)が Cloud Endpoints に提供する機能と同等の API 管理機能を提供します。Endpoints Frameworks には、API バックエンドにリクエストを転送する前にすべてのリクエストを傍受し、必要なチェック(認証など)を行う組み込みの API ゲートウェイが含まれています。バックエンドが応答すると、Endpoints Frameworks はテレメトリーを収集して報告します。API の指標は、Google Cloud コンソールの [エンドポイント] > [サービス] ページで確認できます。
Endpoints Frameworks で利用できる API 管理機能は次のとおりです。
API を Endpoints で管理するには、OpenAPI 仕様のバージョン 2.0 を使用して API が記述された OpenAPI ドキュメントをデプロイする必要があります。このページでは、Endpoints による API 管理を可能にする OpenAPI ドキュメントを生成してデプロイする方法について説明します。
API 管理を追加しなくても API でリクエストを処理できますが、その場合、API はGoogle Cloud コンソールの [エンドポイント] > [サービス] ページに表示されず、Endpoints によって提供される機能(ロギング、モニタリング、割り当ての設定など)を使用できません。
API に API 管理を追加するには:
- ビルドファイルを構成するの説明に従って、Maven - pom.xmlファイルまたは Gradle- build.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 管理サーブレットのフィルタ構成を追加します。
- API プロジェクトのビルド構成を変更します。 - Maven- 
      API 管理の依存関係を追加します。 
- 
      クライアント ライブラリと OpenAPI ドキュメント openapi.jsonの生成に使用できるプラグインを含めます。
 - Gradle- 
    API 管理の依存関係を追加します。 
- 
         プラグインを Maven Central から取得するように外部依存関係を宣言します。 
- 
       サーバー側の Endpoints Frameworks Gradle プラグインを使用します。このプラグインは Open API ドキュメントを生成します。 
- 
      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をデプロイするとき、新しい Endpoints サービスが- YOUR_PROJECT_ID.appspot.comという名前で作成されます。正常に完了すると、次のような行にサービス構成 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 をテストします。 
- API の指標を表示するには、コンソールでプロジェクトの [エンドポイント] > [サービス] ページを開きます。 Google Cloud