【问题标题】:Get the web service end point URL dynamically动态获取 Web 服务端点 URL
【发布时间】:2015-07-07 07:33:23
【问题描述】:

我们正在开发一个 Android 应用程序。对于后端服务,我们使用了 REST API。我们有不同的 API 方法,例如 Authenticate、Send Info。

为了对用户进行身份验证,我们首先需要 Web 服务端点 URL。

Web 服务端点会不时更改,例如 Stage URL、Production URL 等等。我们的移动应用程序如何动态地知道这一点。

一种方法是使用推送通知,我们可以将动态 Web 服务端点发送到设备。

还有其他方法吗,例如,我们可以在云系统中更新并从我们的应用程序中获取它吗?

我听说了 Google Cloud Endpoint。仅用于获取基本 URL 是否有用?

【问题讨论】:

  • 推送通知不是可靠的解决方案。它可能随时到达或在此过程中丢失(例如,当设备关闭时间过长时)。我会使用一些托管在永久位置的静态文件,该文件将指向您的端点并定期检查更改。此解决方案类似于 torrent 跟踪器的工作方式。
  • 我们使用 PubNub 进行推送通知。基本上它将像设备和 pubnub 服务器之间的套接字连接一样工作,然后在 pubnub 服务器和我们的 Web 服务器之间工作。在进行身份验证 api 调用之前,我们可以使用它获取基本 URL。如果我错了,请纠正我。

标签: android web-services dynamic push-notification google-cloud-endpoints


【解决方案1】:

从暂存或生产中更改您的不同端点是一个非常重大的变化,不应该需要这样一个过度设计的通知系统。只需为连接到暂存 API 环境的开发人员部署应用的“暂存”版本。

【讨论】:

  • 即使在生产之后,如果我想更改 URL,也会通过硬编码更改 URL 来构建一个新的 APK。我们不必每次都构建新的 apk。现有的 APK 应该有相应的行为。
  • 好吧,将您的端点值存储在某种数据存储(MySQL、Datastore、Cloud SQL 等)中,并在您想要发出请求时检索该 URL,并将其缓存在设备中本地存储。每当应用程序启动时,向该位置发出请求以检查端点是否更改。最后,如果您真的想对此做出超级响应,是的,您可以使用某种推送通知或发布/订阅服务。为了超级健壮,您可以结合所有这些方法。好像你回答了自己的问题!
  • 更不用说,URL 不应该经常更改。再一次,我认为这是过度设计。您不打算托管一个稳定的域名,并通过稳定的路由到您的 API?
  • 是的,正如您所说,我们需要至少一个静态 URL 来获取动态更改的 URL。谢谢你的回答。
猜你喜欢
  • 1970-01-01
  • 2016-08-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-12-16
  • 1970-01-01
相关资源
最近更新 更多