必要なファイルと構成

このページでは、App Engine で Cloud Endpoints Frameworks を使用するために API に追加する必要があるファイルについて説明します。

プロジェクトは少なくとも以下のファイルを含んでいる必要があります。

ファイルと保管場所 説明
/src/main/java/<packagepath>/<your_api_class>.java バックエンド API が含まれたクラスファイル(API が複数のクラスにアクセスするのであれば複数のファイルが必要です)。
/src/main/webapp/WEB-INF/appengine-web.xml App Engine の構成に必要なウェブアプリのデプロイ記述子。
/src/main/webapp/WEB-INF/web.xml URL をサーブレットやその他の情報にマップする、標準の Java ウェブアプリのデプロイ記述子。

これら必要なファイルのそれぞれの内容は以下のセクションに記載されています。

API クラスファイル

クラスファイル(マルチクラス API を使用する場合は複数のファイル)の内容のどの部分が必須でどの部分が省略可能かについては、Endpoint アノテーションのトピックで詳しく説明しています。

appengine-web.xml

appengine-web.xml ファイルは、API のデプロイ時に App Engine スタンダード環境の構成を定義するために使用されます。詳細については、appengine-web.xml リファレンスをご覧ください。

このファイルでは最低でも次の内容が必要になります。

<appengine-web-app xmlns="http://appengine.google.com/ns/1.0">
    <runtime>java8</runtime>
    <threadsafe>true</threadsafe>

    <system-properties>
        <property name="java.util.logging.config.file" value="WEB-INF/logging.properties"/>
    </system-properties>
</appengine-web-app>

web.xml

web.xml ファイルを使用して、Endpoints サーブレットを構成します。Endpoints サーブレットは受信リクエストを処理し、App Engine で実行されているバックエンド サービスにこれらのリクエストを転送します。API を Cloud Endpoints で管理するには、Endpoints サーブレットが必要です。

このファイルでは最低でも次の内容が必要になります。

<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
         http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
         version="3.1">
    <!-- Wrap the backend with Endpoints Frameworks v2. -->
    <servlet>
        <servlet-name>EndpointsServlet</servlet-name>
        <servlet-class>com.google.api.server.spi.EndpointsServlet</servlet-class>
        <init-param>
            <param-name>services</param-name>
            <param-value>com.example.skeleton.MyApi</param-value>
        </init-param>
    </servlet>
    <!-- Route API method requests to the backend. -->
    <servlet-mapping>
        <servlet-name>EndpointsServlet</servlet-name>
        <url-pattern>/_ah/api/*</url-pattern>
    </servlet-mapping>
</web-app>

web.xml の詳細については、デプロイ記述子: web.xml を参照してください。