json - 我应该在客户端验证 API 响应吗?

标签 json rest api validation web-applications

假设我有一个使用 RESTFUL API 的应用程序。例如:我正在向端点发送请求:“/products”,我正在接收一些 JSON 格式的响应。然后,我在我的 SPA 应用程序中使用该数据。

一段时间后,响应的形状发生了变化。我没有被告知这一事实。结果,我的 SPA 应用程序崩溃了。更改后,我在应用程序中使用的一些属性在 API 响应中丢失了。当我验证我的 SPA 应用程序中的每个响应并在响应中缺少占位符值时,我可以防止这种情况。但这可能会导致一些性能问题。

无论如何,将 API 响应验证放在客户端是一种好的做法吗?

最佳答案

我认为您遇到的问题实际上与验证无关,但与您的服务器以非向后兼容方式升级有关。您可能需要一种更好的方式来处理更新。

我不认为偶尔下载模式并盲目地填充缺失的属性是可行的方法。您能否构建您的服务以使其具有一定的向后兼容性?如果您确实必须打破向后兼容性,您是否有充分的理由并且是否有一种明智的方式让客户端支持它,或者您是否需要更新客户端?

如果您控制服务器和客户端,对我有用的策略是:

  1. 不要立即进行重大更改。首先将服务器更新到新版本,并在以后的更新中停止支持以前的版本。
  2. 客户端偶尔可以检查服务器支持的版本。如果他们发现服务器已放弃对客户端使用的版本的支持,请更新客户端。 (也许只是刷新一下?)

但这相当广泛。不确定这对您有多大帮助,因为它取决于具体情况。

关于json - 我应该在客户端验证 API 响应吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54189307/

相关文章:

php - 使用多个嵌套 JSON 键进行 DynamoDB 扫描 (PHP)

java - 如何从java中的列表中获取Jsonobject?

json - Watson 对话中的功能

ios - 在 ios 设备上存储大型动态数据库还是只进行 rest api 调用?

php - 通过 PHP 使用 Twitter API 的最佳方式是什么?

Android Retrofit入队方法没有返回值

mysql - 在数据库中存储 JSON 对象

api - RESTful API 必须是无状态的,但是并发呢?

rest - 即使 SOAP UI 中的测试用例在继续之前清理失败,如何调用某些步骤?

java - java中的MouseMotionListener如何工作?