【问题标题】:REST API endpoint to validate frontend entity用于验证前端实体的 REST API 端点
【发布时间】:2018-01-09 10:48:51
【问题描述】:

我们正在为我们的应用程序设计一个 REST API。在我们的前端,我们有一个账单信息表单,它提交到以下端点:POST /billing-information。但是,在提交表单之前,我们需要进行一些验证。

一些验证很简单(例如:输入长度、允许的字符),并通过 JS 在前端直接执行。其他验证更复杂,需要一些数据库交互。我们的业务流程要求我们在提交表单之前执行这些验证。

我的问题是,什么是 RESTful API 端点来对计费信息执行此类验证?我们考虑过POST /billing-information/validate,但在 REST API 的意义上它看起来并不多。这方面的最佳做法是什么?

【问题讨论】:

  • 为什么不在同一个网络服务中进行验证。在提交账单信息之前检查所有验证,如果任何信息不正确,请不要继续并返回验证失败错误。
  • 我们在开发webservice时遵循相同的结构。当我们收到请求时,我们将其发送给请求验证器。此请求验证器将检查请求中的逻辑和业务所需数据。如果缺少任何数据,并且该请求是必须填写的字段,那么我们将其返回为“错误请求”
  • 验证是在同一个 Web 服务中执行的,只是我们无法为它想出一个 RESTful 端点命名。不确定我是否理解您的意思。
  • 您的端点将是:POST /billing-information。在将详细信息保存到数据库之前或在其中执行任何业务逻辑之前,只会进行验证。希望我们俩都在同一条轨道上。
  • 这也会发生,但我们的业务逻辑要求在用户点击提交按钮之前进行验证。

标签: rest api validation endpoint


【解决方案1】:

在大多数情况下,最佳做法是务实

我们的想法是不要盲目地关注REST,对吧?尤其是当我们作为消费者谈论我们自己的 UI 或 Web 服务时。如果您希望您的 validate 端点将被外部客户端使用,那么您可能希望通过提供以下端点在您的客户眼中看起来更好(如果他们是 100% 的 REST 狂热者):

POST api/billing-information-drafts

POST 到此集合会导致所有后端验证发生,但没有存储任何内容。值得强调的是,您的api/billing-information enpoint 无论如何都应该执行相同的验证,以确保您不会违反业务规则。

【讨论】:

  • 务实对我们来说也是显而易见的选择,但我想弄清楚解决这个问题的正确方法是什么。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-15
  • 1970-01-01
  • 2019-06-27
  • 2016-12-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多