【问题标题】:specify an action to run via REST API指定要通过 REST API 运行的操作
【发布时间】:2016-03-08 16:42:38
【问题描述】:

只是想知道将静止的端点指定为“runSomeAction”的最佳做法是什么?我知道 GET、POST、PUT、DELETE 操作的用途以及使用名词来指定这些端点,但是公开非 CRUD 类型操作的服务器功能的首选方法是什么?

编辑:

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

【问题讨论】:

  • 必须是 REST API 吗?这听起来更像是消息队列或作业调度程序的作业。
  • 谁对合法问题投了反对票?大声笑回答您的问题@MartinBroadhurst 它确实需要在我们的 API 中,因为用户正在存储多个对象,然后希望能够按需启动此过程。结果反映在 UI 的其他地方,只是不必是当前页面或我们正在重定向的页面,以便用户可以根据需要继续进行其他更改。如果我可以更改它,我会更改它,但这会进入遗留代码并且要求在合同中,并且要重构以使其执行其他方式将花费太多。

标签: rest restful-architecture restful-url


【解决方案1】:

行动的最终结果是什么?通常,您执行 PUT/POST 以创建结果资源。例如,您可以使用POST /email-notifications,而不是POST /sendEmail

编辑

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

此外,根据 @MartinBroadhurst,REST API 可能不是这里的理想工具。

【讨论】:

  • 更新了问题以解决您的问题。这仍然适合您的电子邮件示例吗?
  • @weagle08 更新答案以解决您更新的问题。 :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-05-17
  • 2018-07-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多