【问题标题】:Which one should validate the response data? Sender(Backend) or Receiver(Client)?哪一个应该验证响应数据?发送者(后端)还是接收者(客户端)?
【发布时间】:2021-07-22 09:55:39
【问题描述】:
// Data flow
CMS -> DB -> REST API -> Client

我们目前正在构建一个自助服务终端系统。 CMS 设置产品的数据,Clients 向REST API 请求数据。

虽然CMSDB 应该在INSERTUPDATEDELETE 之前验证所有数据,但我们可能会遗漏一些事情。因此,可以放心地认为某些数据可能会出错(例如,min_quantity > max_quantity)。

REST API -> Client 部分,DB 的不良数据应该由哪一部分处理?团队决定 REST API 应按原样响应,无需任何验证或清理,否则将难以调试。 Client 应该以某种方式处理错误的数据。我很担心这个决定,但我不知道为什么。

【问题讨论】:

    标签: api validation response


    【解决方案1】:

    如果数据已进入您的数据库,则假设它在进入数据库的过程中已经过验证,确保您随后从数据库返回的内容是干净的。

    当您向 API 发出 get 请求时,端点的目的是获取请求的数据并将其返回给调用者,这应该是它唯一关心的问题,如果它提供的数据对于客户端是错误的让客户自己判断错误原因并处理。

    当您的管道在另一个方向(客户端 -> API)运行时,您可以执行多个验证步骤以确保数据清洁。您可以在提交时验证前端输入,然后当 API 接收到请求时,您可以解析数据以确保它符合您的数据标准。而且很可能您的数据库设计也会带来一些固有的限制。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-04
      • 2015-09-30
      • 2019-09-15
      相关资源
      最近更新 更多