用于验证前端实体的REST API端点

用于验证前端实体的REST API端点,rest,api,validation,endpoint,Rest,Api,Validation,Endpoint,我们正在为我们的应用程序设计一个RESTAPI。在我们的前端,我们有一个提交到以下端点的账单信息表单:POST/billing information。但是,在提交表单之前,我们需要一些验证 有些验证很简单(例如:输入长度、允许的字符),可以通过JS直接在前端执行。其他验证更复杂,需要一些数据库交互。我们的业务流程要求我们在提交表单之前执行这些验证 我的问题是,什么是RESTful API端点来对账单信息执行这种验证?我们考虑了POST/billing information/validate,

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

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


我的问题是,什么是RESTful API端点来对账单信息执行这种验证?我们考虑了
POST/billing information/validate
,但它与restapi的意义不太一样。这方面的最佳实践是什么?

在大多数情况下,最佳实践应该是务实

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

POST api/billing-information-drafts

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

为什么不在相同的Web服务中进行验证呢。在提交账单信息之前,请检查所有验证,如果任何信息不正确,请不要继续,并返回验证失败错误。我们在开发Web服务时遵循相同的结构。当我们收到请求时,我们将其发送给请求验证程序。此请求验证程序将检查请求中的逻辑和业务所需数据。如果缺少任何数据,并且该请求必须填写该字段,那么我们返回时会说“坏请求”验证是在同一web服务中执行的,只是我们无法为其提供RESTful端点命名。不确定我是否理解您的观点。您的端点将是:POST/账单信息。只有在将详细信息保存到数据库中或在将任何业务逻辑执行到数据库中之前,才会进行验证。希望我们都在同一条轨道上。这也会发生,但我们的业务逻辑要求在用户单击“提交”按钮之前进行验证。对我们来说,务实也是显而易见的选择,但我想找出解决此端点的正确方法。