【问题标题】:Difference between API and appengine-web.xml versionsAPI 和 appengine-web.xml 版本之间的区别
【发布时间】:2015-08-26 16:58:22
【问题描述】:

我是 Google App Engine 的新手,我目前有一个可以使用 Build > Deploy Module to App Engine... 菜单项在 Android Studio 中部署的有效端点。

在部署时,我注意到 Android Studio 使用来自 appengine-web.xml 的版本号,并且该版本号在部署后会在控制台中使用。我想知道,API 版本号是什么意思,它应该与 Endpoint 版本匹配吗?

例如我的端点类是这样配置的(v2):

@Api(
        name = "myApi",
        version = "v2",
        namespace = @ApiNamespace(
                ownerDomain = "backend.mydomain",
                ownerName = "backend.mydomain",
                packagePath = ""
        )
)

但如果我的 appengine-web.xml 配置为版本 1,后端代码将被推送到版本 1,但仍可继续使用 API 版本 2。

<?xml version="1.0" encoding="utf-8"?>
<appengine-web-app xmlns="http://appengine.google.com/ns/1.0">
    <application>myproject</application>
    <version>1</version>
    <threadsafe>true</threadsafe>

    <system-properties>
        <property name="java.util.logging.config.file" value="WEB-INF/logging.properties" />
    </system-properties>
</appengine-web-app>

这是一个问题还是不好的做法?

【问题讨论】:

    标签: google-app-engine android-studio google-cloud-endpoints


    【解决方案1】:

    没关系。 App Engine 中的版本对应于在实例上运行的已部署代码版本。您可以拥有多个应用引擎版本,但它们都是各自不同的部署。 Cloud Endpoints 中的版本被视为 api 版本,您可以在同一应用引擎版本中运行一个或多个版本。

    考虑 App Engine 版本的一个好方法是您的传统 Dev、Staging、Production 范例。您可以部署&lt;version&gt;dev&lt;/version&gt;&lt;version&gt;stage&lt;/version&gt;&lt;version&gt;prod&lt;/version&gt;,然后将prod 设置为您的默认服务版本。然后,这些 App Engine 版本中的每一个都可以托管 API 版本 v1v2v3

    【讨论】:

    • 太棒了,我还了解到您可以使用版本字符串,现在将其从 1 更改为 prod。谢谢!
    • 不客气。请记住,尽管您可以拥有多个并行应用引擎版本,但它们都共享同一个数据存储区。
    猜你喜欢
    • 1970-01-01
    • 2010-11-16
    • 2011-07-13
    • 2023-01-05
    • 2019-06-24
    • 1970-01-01
    • 2016-11-04
    • 2014-08-11
    相关资源
    最近更新 更多