指定要通过RESTAPI运行的操作

指定要通过RESTAPI运行的操作,rest,restful-architecture,restful-url,Rest,Restful Architecture,Restful Url,只是想知道在rest中指定一个端点来表示“runSomeAction”的最佳实践是什么?我知道GET、POST、PUT、DELETE操作以及使用名词来指定这些端点的用法,但是公开非CRUD类型操作的服务器功能的首选方法是什么 编辑: 操作的结果将在服务器上启动一个进程,并立即返回状态200(在进程完成之前),无正文。此过程专门针对数据库中保存的项目运行一些验证规则。此操作的最终结果是什么?通常,您执行PUT/POST来创建结果资源。例如,您可以执行POST/email通知,而不是POST/sen

只是想知道在rest中指定一个端点来表示“runSomeAction”的最佳实践是什么?我知道GET、POST、PUT、DELETE操作以及使用名词来指定这些端点的用法,但是公开非CRUD类型操作的服务器功能的首选方法是什么

编辑:


操作的结果将在服务器上启动一个进程,并立即返回状态200(在进程完成之前),无正文。此过程专门针对数据库中保存的项目运行一些验证规则。

此操作的最终结果是什么?通常,您执行PUT/POST来创建结果资源。例如,您可以执行
POST/email通知,而不是
POST/sendmail

编辑

在你的情况下,我认为你的资源是验证的结果。我建议使用
POST/validations
POST/validations/{whateverTypeIsBeingValidated}
。您可以交替使用
验证结果
。即使您现在不支持客户端查看验证结果,您也可以选择以后查看


此外,根据@MartinBroadhurst的说法,REST API可能不是一个理想的工具。

更新了问题以解决您的问题。。这仍然符合您的电子邮件示例吗?@weagle08更新了答案以解决您的更新问题。:)它必须是RESTAPI吗?这听起来更像是消息队列或作业调度程序的作业。谁否决了一个合法的问题?lol要回答您的问题@MartinBroadhurst,它确实需要在我们的API中,因为用户正在存储多个对象,然后希望能够按需启动此过程。结果反映在UI的其他地方,只是不必是当前页面或我们正在重定向的页面,以便用户可以继续进行其他更改(如果需要)。如果我可以改变它,我会的,但这将进入遗留代码,需求在合同中,重构成本太高,使其无法执行。