生成AppEngine会生成4个与DeviceInfo相关的文件 - 为什么有4个?每个人都有什么用?

时间:2014-01-09 00:35:11

标签: google-app-engine android-studio

in: Android Studio 0.4 
do: New Project, Generate AppEngine
result:

AppEngine树中的DeviceInfo和DeviceInfoEndpoint类

在端点树中还有类Deviceinfoendpoint(差异拼写)和model / DeviceInfo(相同的拼写)

这是我最好的猜测:

AppEngine / DeviceInfo是一个带有get / set的Java Bean和一些私有属性(RegID,info strings)

AppEngine / DeviceInfoEndpoint正在描述将成为引擎上的API的方法。提供getDeviceInfo,insertDeviceInfo,removeDeviceInfo等方法,并管理持久化DeviceInfo实体的集合

Endpoints / model / DeviceInfo扩展了com.google.api.client.json.GenericJson 并实现看起来像,但与AppEngine / DeviceInfo(deviceInformation,deviceRegID,get / set方法的属性)不同 - 如果已经编写了Bean,为什么这是必要的?

端点/ Deviceinfoendpoint(拼写略有不同,不同的上限) 扩展了com.google.api.client.googleapis.services.json.AbstractGoogleJsonClient 并且有很多方法。

这些部分的责任是什么?什么是App-engine模块中的端点类与端点模块中的端点类之间的区别?

一段有用的视频(第38分钟左右的相关资料) http://www.youtube.com/watch?v=lmv1dTnhLH4&feature=youtu.be&t=37m4s 虽然从那以后行为发生了变化。

一个重要的类“Builder”仅在Endpoints / Deviceinfoendpoint中可用,因此这似乎是相关的。

在Android网页上也没有找到这些结果的说明,如果你知道一个有用的网址,我会读它。

1 个答案:

答案 0 :(得分:0)

在AppEngine树中 DeviceInfo是持久性对象,此JPA对象保存到App Engine数据存储区。它也是服务器端序列化中使用的对象。

就像你说的,DeviceInfoEndpoint是端点类,它定义了可用于与服务器交互的方法。所有注释都有助于定义端点的暴露方式。 (客户端Deviceinfoendpoint的拼写/大小写在这里使用@Api注释定义。)

客户端上的大多数代码(所有客户端库代码)都是由端点服务生成的,该服务采用服务器端定义的内容并提供与端点交互的对象模型。它可能看起来像是重复,因为服务正在复制服务器端的对象模型,而不会实际暴露服务器端正在发生的任何事情,只是客户需要知道的事情。

Builder只是一个服务对象,它封装了与appengine服务器交互所需的一切。它有助于以有意义的方式向用户公开端点。

以下是Android中端点客户端的一些信息:https://developers.google.com/appengine/docs/java/endpoints/consume_android

以下是一些更通用的端点文档:https://developers.google.com/appengine/docs/java/endpoints/