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] > [サービス] ページに表示されず、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 管理サーブレットのフィルタ構成を追加します。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 コンソールでプロジェクトの [Endpoints] > [サービス] ページを開きます。