Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/189.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在appengine中维护Java端点API版本_Java_Android_Eclipse_Google App Engine_Google Cloud Endpoints - Fatal编程技术网

在appengine中维护Java端点API版本

在appengine中维护Java端点API版本,java,android,eclipse,google-app-engine,google-cloud-endpoints,Java,Android,Eclipse,Google App Engine,Google Cloud Endpoints,我有一个Android应用程序项目和一个AppEngine后端项目,作为Android应用程序的后端。 我使用Google插件从appengine项目为android客户端生成客户端库 AppEngine后端定义了端点“AppEndPoint”。 我已经发布了android应用程序和appengine应用程序的第一个版本 现在我想对端点进行一些修改,最终将API版本更改为“v2” 我所做的 在AppEngine项目中,我复制了现有的AppEndPoint类并将其重命名为AppEndPointV2

我有一个Android应用程序项目和一个AppEngine后端项目,作为Android应用程序的后端。 我使用Google插件从appengine项目为android客户端生成客户端库

AppEngine后端定义了端点“AppEndPoint”。 我已经发布了android应用程序和appengine应用程序的第一个版本

现在我想对端点进行一些修改,最终将API版本更改为“v2”

我所做的

在AppEngine项目中,我复制了现有的AppEndPoint类并将其重命名为AppEndPointV2,并对新类进行了必要的修改。还使用version=“v2”注释了新类。当我部署应用程序时,它可以像预期的那样在API资源管理器中同时看到v1和v2版本

现在,当我使用谷歌插件(Eclipse)为android应用程序生成客户端库时,它会导出v1和v2,并生成错误“类型Appendpoint已经定义”

我希望新导出的客户端库中只存在v2。因此,从这一点上,我觉得我的方法有问题。我在网上和StackOverflow上搜索了很多。但却找不到确切的方法。主要是搜索有点困难,因为“端点”、“api”、“版本”等关键字非常通用

我想要什么

  • 我现有的(已经发布的客户端应用程序)应该仍然能够访问API的v1
  • 新应用程序应使用v2
  • 所以我想知道

  • 维护端点API的不同版本的推荐方法是什么。如何编写这些类。在API的每个版本上复制endpoint类并对其进行更改是否是推荐的方法
  • 我如何告诉插件我只想将端点的v2导出到端点客户端库
  • 注意:我使用的是AppEngineJava,eclipse是IDE

    建议使用什么方法来维护不同版本的应用程序 端点API。如何编写这些类。正在复制 每个API版本上的endpoint类并对其进行更改 推荐的方式

    您走在正确的轨道上,理想情况下,您可以构建v1并继续对其进行重新部署,一旦部署v2,您的最新v1将仍然适用于您的遗留应用程序

    对于你的“已经定义”的问题,你应该考虑在端点和模型的包中包括一个版本标记。例如
    com.example.myendpoint.v2

    这样,您将复制代码(复制模型类等),但您将确保对新版本所做的更改不会破坏以前的版本