【问题标题】:Google Cloud Endpoints discovery document changes / evolution support on iOS?iOS 上的 Google Cloud Endpoints 发现文档更改/进化支持?
【发布时间】:2015-01-20 20:24:53
【问题描述】:

我正在实现我们的 Google Cloud Endpoints API 的 iOS 客户端,并且想知道 Cloud Endpoints 发现文档如何在 iOS 内部进行解释,所以当我在 Cloud Endpoints 端进行更改时(添加一个字段,更改一个字段名,删除一个字段)老客户会怎样?

我知道 Cloud Endpoints 为 Javascript/AngularJS 方面公开了一个 REST JSON API,我们可以使用 iOS 上的 AFNetworking 之类的东西手动绑定这些 API。我熟悉如何在这种情况下管理客户端上的 API 更改,但如果使用 Toolkit SDK / RPC 实现有意义,那么我宁愿这样做。

那么,这一切都是通过对 API 进行版本控制来处理的吗?那么老客户会请求旧版本的 API 吗?那么 Google iOS SDK 是否支持语义版本控制?如果不是这样,我会看到版本号很快失控。

请注意,这是 GCE 的 python 版本。

【问题讨论】:

    标签: python ios google-app-engine google-cloud-endpoints


    【解决方案1】:

    最终,如果您不希望自己了解如何调用端点 API 的各种实现细节,那么您最终应该生成和使用客户端库。另一方面,如果您要使用 AFNetworking,则取决于您自己研究如何使用 AFNetworking 调用 REST API。端点定义的 REST API 可以阅读 in the documentation,此外,您可以使用 API Explorer 测试您的方法,甚至在浏览器中捕获随这些请求发送的标头。

    其次,不言而喻,您不应该编写 API,然后在不对其进行版本化或通知/更新任何客户端的情况下彻底更改其规范。版本系统在 A) 从您的发现文档生成的客户端库中实现,B) 在 REST API 本身的 URL 路由中实现。您可能希望选择目标框架支持的版本控制命名方案。

    我希望这为您消除了任何困惑。

    【讨论】:

    • 所以它基本上是沼泽标准 REST API 的东西。一旦您使用客户端进行部署,除非您想对端点进行版本化或对整个 API 进行版本化,否则不会更改字段名称或任何内容?
    • 我的意思是,您当然可以重新部署相同版本的 API 并进行更改,但我指的是最佳实践。最好将 API 的某个版本保持在开发中,直到它通过测试,然后将其作为该版本一劳永逸地部署。一旦你部署了一个版本,除非它是一个不会破坏事情或影响客户端调用 API 方式的小补丁,否则最好为自己提供一个新版本来工作,尤其是在对参数列表等方面进行更改时、数据类型、方法内代码的性质及其副作用等......
    猜你喜欢
    • 2013-10-04
    • 2017-06-24
    • 1970-01-01
    • 1970-01-01
    • 2014-03-13
    • 2018-12-18
    • 1970-01-01
    • 2017-04-12
    • 2014-05-27
    相关资源
    最近更新 更多