关于从Java客户端使用Google Cloud端点的文章不多。 有迹象表明,可以在各种文档中完成此操作,但对此的书面介绍很少。 我已经能够使它正常工作,但是有一些问题。

第一个问题:是否存在一些有关如何通过Java客户端使用Google Cloud Endpoint的文档或示例?

我正在使用GPE生成端点客户端库。 输出是创建带有很多东西的endpoint-libs目录。 文档说:“可以在zip文件的顶级目录中找到生成的特定于服务的库:google-api-services-mayapp-v1-rev20140417180959-1.16.0-rc.jar”。 在我的GPE(3.5.1)版本中,没有创建此类JAR文件。

井字游戏示例的视频(转到23分钟标记)显示了一些源文件,这些源文件已从endpoint-libs目录复制到Android客户端应用中。

https://www.youtube.com/watch?v=NU_wNR_UUn4

第二个问题:关于创建上述JAR文件的文档是否错误? 是否有有关生成的源文件以及如何使用它们的任何文档? 也许有一些关于构建Android应用程序的文档,但是我不知道Android。 无论如何,我筛选了一些Android客户端代码。

视频继续显示用于引用端点的“服务”对象。 我已经修改了代码以与Java客户端一起使用。

MyApp.Builder builder = new MyApp.Builder( new NetHttpTransport(), new GsonFactory(), null );
service = builder.build();
Method1 method1 = service.getEndpointMethod1();
method1.execute();

Android示例使用AndroidHttp.newCompatibleTransport()创建HttpTransport作为MyApp.Builder()的第一个参数;

第三个问题:我用于创建HttpTransport的方法是否适合Java客户端?

第四个问题:Android客户端文档中有多少适用于使用Java客户端的端点-因为它们都是Java客户端? 什么不适用?

===============>>#1 票数:1

(OP:请参阅下面的“ Without Maven”,因为您说您没有使用Maven)

与Maven

我的Cloud Endpoints项目pom.xml包含插件配置:

<plugin>
  <groupId>com.google.appengine</groupId>
  <artifactId>appengine-maven-plugin</artifactId>
  <version>${appengine.version}</version>
  <configuration>
    <enableJarClasses>false</enableJarClasses>
    <version>${app.version}</version>
  </configuration>
  <executions>
    <execution>
      <goals>
        <!-- Generates the discovery document and client library
             during the compile phase. -->
        <goal>endpoints_get_discovery_doc</goal>
        <goal>endpoints_get_client_lib</goal>
      </goals>
    </execution>
  </executions>
</plugin>

请注意<goal>endpoints_get_client_lib</goal>条目,该条目未包含在原始框架中,并且在这里很重要。

对我来说,这会生成并安装一个名为{myApiName}-v1-1.21.0-SNAPSHOT.jar的jar。 有关在.jar中看到的内容,请参见下面的“结果”。

没有Maven

在幕后,Maven似乎正在使用alex @ 指向的机制之一, endpoints.shdocs )。 当我在端点模块上运行“ mvn install”时,我看到一条消息,例如

Executing endpoints Command=[get-client-lib,
  -cp, {lots of .jar files}, -o, {path to output WEB-INF dir},
  -w, {path to generated file working dir?}, -l, java,
  -bs, maven, com.example.MyApi]

我猜这是传递给endpoints.sh的args的列表,尽管我没有检查。

结果

生成的.jar文件如下所示,其中包含顶级客户端MyApiName类,一些支持类以及从发现文档生成的模型类:

META-INF/MANIFEST.MF
META-INF/maven/com.example/myApiName/pom.properties
META-INF/maven/com.example/myApiName/pom.xml
com/example/myApiName/MyApi$AddBatch.class
com/example/myApiName/MyApi$Builder.class
com/example/myApiName/MyApi.class
com/example/myApiName/MyApiRequest.class
com/example/myApiName/MyApiRequestInitializer.class
com/example/myApiName/MyApiScopes.class
com/example/myApiName/model/Thing.class
com/example/myApiName/model/OtherThing.class

  ask by Mike Dee translate from so

未解决问题?本站智能推荐: