1

endpoints.sh get-client-lib com.my.app.FooServiceGoogle Cloud Endpoints[1] のファイルを実行し、正常に生成しました (2 つ.discoveryのファイル、1つ.apiのファイル、および 1 つの.zipファイル)。

warスクリプトは私のフォルダーに何も追加しないので、サーバー側は既に設定されたマジックとアノテーション (Spring Framework風) によって処理されていると思います。web.xml@Api

しかしhttp://localhost:8080/_ah/api/explorer、空の Google クラウド コンソールにリダイレクトされます。アプリをアップロードしても同じ結果が得られます。

何か不足していますか?ドキュメントが少し不足していると思います。生成されたファイルの目的についても説明していません。

Google App Engine Java を使用しています。

[1] https://developers.google.com/appengine/docs/java/endpoints/gen_clients

4

2 に答える 2

1

エンドポイントを機能させるには、Google GAE ページに記載されている手順に従う必要があります。

  1. 最初に API バックエンド コードを記述します。

  2. API バックエンド コードにアノテーションを付けて、そこからクラスとクライアント ライブラリを生成できるようにします。(または、自動的に注釈を付ける Eclipse 用の Google プラグインを使用します。)

  3. endpoints.sh ユーティリティを使用してクライアント ライブラリを生成します。(または、Google Plugin for Eclipse を使用してクライアント ライブラリを生成します。)

  4. API バックエンドを呼び出すときにクライアント ライブラリを使用して、クライアント アプリを記述します。

ただし、上記の手順では、Google プラグイン (Google Plugin for Eclipse) が自動的に生成するいくつかの重要な手順を見逃しています。

  1. web.xml でサーブレットを構成します。( your-full-class-nameを独自のクラス名に 置き換えます)

    <servlet>
        <servlet-name>com.google.api.server.spi.SystemServiceServlet</servlet-name>
        <servlet-class>com.google.api.server.spi.SystemServiceServlet</servlet-class>
        <init-param>
            <param-name>services</param-name>
            <param-value>your-full-class-name</param-value>
        </init-param>
    </servlet>
    <servlet-mapping>
        <servlet-name>com.google.api.server.spi.SystemServiceServlet</servlet-name>
        <url-pattern>/_ah/spi/*</url-pattern>
    </servlet-mapping>
    
  2. endpoints.shによって生成されたファイル (.api) がWeb アプリのルート フォルダーのWEB-INFフォルダーにコピーされていることを確認する必要があります。

理解を深めるために、次のようにendpoints.shを呼び出して、使用可能なすべてのオプションを確認できます。

利用可能なコマンド:

get-client-lib: クライアント ライブラリを生成します
使用法: get-client-lib ...

オプション:
 --classpath=CLASSPATH 追加のクラスパス エントリ
  -cp CLASSPATH (デフォルト: ./war/WEB-INF/classes)。
 --language=LANGUAGE ターゲット出力プログラミング言語
  -l LANGUAGE (java) (デフォルト: java)。
 --output=OUTPUT_DIR 出力ファイルを保存するディレクトリ
  -o OUTPUT_DIR (デフォルト: ./)。
 --war=WAR_PATH ディレクトリへのパスまたは WAR を含む .war
  -w WAR_PATH ディレクトリ レイアウト (デフォルト: ./war)。

gen-api-config: サービス クラスから API 構成ファイルを生成します。
使用法: gen-api-config ...

オプション:
 --classpath=CLASSPATH 追加のクラスパス エントリ
  -cp CLASSPATH (デフォルト: ./war/WEB-INF/classes)。
 --output=OUTPUT_DIR 出力ファイルを保存するディレクトリ
  -o OUTPUT_DIR (デフォルト: ./)。
 --war=WAR_PATH ディレクトリへのパスまたは WAR を含む .war
  -w WAR_PATH ディレクトリ レイアウト (デフォルト: ./war)。

gen-discovery-doc: API Discovery ドキュメントを生成します
使用法: gen-discovery-doc  

オプション:
 --format=FORMAT 要求された API プロトコル タイプ (rest|rpc)
  -f FORMAT (デフォルト: 残り)。
 --output=OUTPUT_DIR 出力ファイルを保存するディレクトリ
  -o OUTPUT_DIR (デフォルト: ./)。

gen-client-lib: クライアント ライブラリを生成します
使用法: gen-client-lib  

オプション:
 --language=LANGUAGE ターゲット出力プログラミング言語
  -l LANGUAGE (java) (デフォルト: java)。
 --output=OUTPUT_DIR 出力ファイルを保存するディレクトリ
  -o OUTPUT_DIR (デフォルト: ./)。

次に、エクスプローラー UI でサービスを次のように表示できます。

  • http://localhost:8080/_ah/api/explorerにアクセスすると、最初にdevelopers.google.comにリダイレクトされます。しかし、内容はローカルホストからのものです。

  • 通常の Google APE ローカル開発サーバーにいつでも頼ることができます。たとえば、IntelliJ Google APE プラグインは、Google APE ローカル サーバーを起動し、「_ah/api/explorer」アクセスもサポートできます。 エンドポイント探索 UI

于 2013-08-05T00:41:56.910 に答える