假设我有一个使用 RESTFUL API 的应用程序。例如:我正在向端点发送请求:“/products”,我正在接收一些 JSON 格式的响应。然后,我在我的 SPA 应用程序中使用该数据。
一段时间后,响应的形状发生了变化。我没有被告知这一事实。结果,我的 SPA 应用程序崩溃了。更改后,我在应用程序中使用的一些属性在 API 响应中丢失了。当我验证我的 SPA 应用程序中的每个响应并在响应中缺少占位符值时,我可以防止这种情况。但这可能会导致一些性能问题。
无论如何,将 API 响应验证放在客户端是一种好的做法吗?
最佳答案
我认为您遇到的问题实际上与验证无关,但与您的服务器以非向后兼容方式升级有关。您可能需要一种更好的方式来处理更新。
我不认为偶尔下载模式并盲目地填充缺失的属性是可行的方法。您能否构建您的服务以使其具有一定的向后兼容性?如果您确实必须打破向后兼容性,您是否有充分的理由并且是否有一种明智的方式让客户端支持它,或者您是否需要更新客户端?
如果您控制服务器和客户端,对我有用的策略是:
- 不要立即进行重大更改。首先将服务器更新到新版本,并在以后的更新中停止支持以前的版本。
- 客户端偶尔可以检查服务器支持的版本。如果他们发现服务器已放弃对客户端使用的版本的支持,请更新客户端。 (也许只是刷新一下?)
但这相当广泛。不确定这对您有多大帮助,因为它取决于具体情况。
关于json - 我应该在客户端验证 API 响应吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54189307/