iOS 客户端是否应该在服务器(微服务)失败时重试?
Should iOS client retry on server (microservice) failure?
我正在构建一个包含 iOS 应用程序的项目,该应用程序通过 HTTP 与微服务通信,原因有很多:验证用户、保存数据、检索数据等等。
如果客户端失败,应用程序崩溃。如果可能,将在下一个版本中报告并修复此问题。
这是我的问题:
如果服务器失败,它returns一个错误的 HTTP 代码(4XX、5XX 等)。 iOS 应用应该如何反应?它应该接受失败并通知用户吗?它应该重试吗?多少次?
如果 数据库失败 ,服务器 returns 通过 JSON 的错误消息。同样,iOS 应用应该如何反应?
答案是否取决于所使用的技术?
这可能取决于域和请求的重要性;例如创建银行账户转账的请求与 post 状态更新的请求将不一样。
话虽如此,他们可以在技术上仍然以相同的方式处理错误。即使在服务器故障或数据库故障的情况下,我的 2 美分也会要求重试。这可能更多地是关于移动客户端服务器应用程序的软件开发过程,但我相信 大多数 修复本质上应该在服务器端。这是因为人们可能没有更新 iPad 并且烦扰他们进行升级是糟糕的用户体验。将修复的责任放在服务器端也有助于避免在进入应用程序商店之前通过 Google 或 Apple 批准流程。
展望未来,我建议如下:
- 在移动应用程序中保持弹性并处理所有错误而不是让应用程序崩溃:使用 try/catch 块来处理错误,要求用户重试,或者让他们知道您已报告问题。如果可能,将错误日志发送到服务器。
- QA 和彻底测试,然后再将其放入应用商店,以避免由于错误修复而不得不多次部署。
- 构建您的软件,使修复通常发生在服务器端,以最大程度地减少客户端的麻烦(和错误的实时代码)。但是,应该在移动应用程序上处理诸如未在发送到服务器的请求中提供足够信息之类的错误——但此类问题应该通过严格的 QA 流程来缓解。
希望对您有所帮助。
我正在构建一个包含 iOS 应用程序的项目,该应用程序通过 HTTP 与微服务通信,原因有很多:验证用户、保存数据、检索数据等等。
如果客户端失败,应用程序崩溃。如果可能,将在下一个版本中报告并修复此问题。
这是我的问题:
如果服务器失败,它returns一个错误的 HTTP 代码(4XX、5XX 等)。 iOS 应用应该如何反应?它应该接受失败并通知用户吗?它应该重试吗?多少次?
如果 数据库失败 ,服务器 returns 通过 JSON 的错误消息。同样,iOS 应用应该如何反应?
答案是否取决于所使用的技术?
这可能取决于域和请求的重要性;例如创建银行账户转账的请求与 post 状态更新的请求将不一样。
话虽如此,他们可以在技术上仍然以相同的方式处理错误。即使在服务器故障或数据库故障的情况下,我的 2 美分也会要求重试。这可能更多地是关于移动客户端服务器应用程序的软件开发过程,但我相信 大多数 修复本质上应该在服务器端。这是因为人们可能没有更新 iPad 并且烦扰他们进行升级是糟糕的用户体验。将修复的责任放在服务器端也有助于避免在进入应用程序商店之前通过 Google 或 Apple 批准流程。
展望未来,我建议如下:
- 在移动应用程序中保持弹性并处理所有错误而不是让应用程序崩溃:使用 try/catch 块来处理错误,要求用户重试,或者让他们知道您已报告问题。如果可能,将错误日志发送到服务器。
- QA 和彻底测试,然后再将其放入应用商店,以避免由于错误修复而不得不多次部署。
- 构建您的软件,使修复通常发生在服务器端,以最大程度地减少客户端的麻烦(和错误的实时代码)。但是,应该在移动应用程序上处理诸如未在发送到服务器的请求中提供足够信息之类的错误——但此类问题应该通过严格的 QA 流程来缓解。
希望对您有所帮助。