关于从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文件。
这个tic-tac-toe示例的视频(转到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()的第一个参数;
第三个问题:我用于创建适合Java客户端的HttpTransport的方法是什么?
第四个问题:有多少Android客户端文档适用于从Java客户端使用端点 - 因为它们都是Java客户端?什么不适用?
答案 0 :(得分:1)
(OP:参见"没有Maven"下面,因为你说你没有使用Maven)
My Cloud Endpoints项目pom.xml包含插件配置:
answer = array.map { |n| -n }
请注意<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>
的jar。见&#34;结果&#34;下面是我在.jar中看到的内容。
在幕后,Maven似乎正在使用alex @ pointed to,{myApiName}-v1-1.21.0-SNAPSHOT.jar
(docs)之一的机制。当我运行&#34; mvn install&#34;在我的终端模块上,我看到一条消息,如
endpoints.sh
我猜这是它传递给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]
的args列表,虽然我还没有检查过。
生成的.jar文件看起来像这样,顶级客户端MyApiName类,一些支持类和从发现文档生成的模型类:
endpoints.sh