为Java客户端生成Google Cloud端点

时间:2014-04-20 02:25:42

标签: google-app-engine google-cloud-endpoints java-client

关于从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客户端?什么不适用?

1 个答案:

答案 0 :(得分:1)

(OP:参见"没有Maven"下面,因为你说你没有使用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

在幕后,Maven似乎正在使用alex @ pointed to{myApiName}-v1-1.21.0-SNAPSHOT.jardocs)之一的机制。当我运行&#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