代码之家  ›  专栏  ›  技术社区  ›  olympia

iOS客户端是否应在服务器(微服务)失败时重试?

  •  0
  • olympia  · 技术社区  · 9 年前

    我正在构建一个由iOS应用程序组成的项目,该应用程序通过HTTP与微服务通信,原因有很多:验证用户、保存数据、检索数据等等。

    如果 客户端失败 ,应用程序崩溃。如果可能,这将在下一版本中报告并修复。

    我的问题是:

    1. 如果 服务器出现故障 ,它返回错误HTTP代码(4XX、5XX等)。iOS应用程序应该如何反应?它应该接受失败并通知用户吗?是否应该重新尝试?多少次?

    2. 如果 数据库出现故障 ,服务器通过JSON返回错误消息。同样,iOS应用程序应该如何反应?

    答案取决于所使用的技术吗?

    1 回复  |  直到 9 年前
        1
  •  1
  •   olympia    9 年前

    这可能取决于域和请求的重要性;e、 g.创建银行账户转账的请求与发布状态更新的请求不会被创建为相等。

    话虽如此,他们 能够 技术上仍然以相同的方式处理错误。即使在服务器或数据库出现故障的情况下,我也会要求重试。这可能更多地是关于移动客户端-服务器应用程序的软件开发过程,但我相信 修复本来应该在服务器端。这是因为人们可能没有更新iPad,烦扰他们升级是糟糕的用户体验。将修复的责任放在服务器端也有助于避免在应用程序商店上市之前通过谷歌或苹果的审批程序。

    接下来,我将提出以下建议:

    • 在移动应用程序中保持弹性,处理所有错误,而不是让应用程序崩溃:使用try/catch块来处理错误, 要求用户重试 ,或让他们知道您报告了问题。如果可能,请将错误日志发送到服务器。
    • QA和彻底测试 在将其放入应用商店之前,避免由于错误修复而不得不多次部署。
    • 构建您的软件,使修复通常发生在服务器端,以最大限度地减少客户端的麻烦(以及错误的实时代码)。然而,像在发送到服务器的请求中没有提供足够的信息这样的错误应该在移动应用程序上处理——但是这种问题应该通过严格的QA过程来缓解。

    希望这有帮助。

    推荐文章