RESTful在资源上指定命令的方式

时间:2019-06-22 07:05:25

标签: rest

我找不到以RESTful方式指定命令的通用方法。考虑一下,我有一个资源想要提供3个命令:

  • 启用
  • 禁用
  • 重新触发

哪种是最RESTful的方式?

  1. POST /resource/disable
  2. POST /resource?command=disable
  3. 还有其他方法吗?

1 个答案:

答案 0 :(得分:-1)

  

哪种是最RESTful的方式?

您将如何使用网站? REST是万维网的architectural style;如果您能弄清楚如何使用网站,那将为您提供有关如何提供RESTful API的正确思路。

在网络上,通常的答案是我们将拥有 forms 来从客户端收集信息,然后客户端会提交POST请求(因为我们打算更改资源)。

由于form.action属性告诉客户端要使用的URI,服务器可以控制URI是什么,如果需要,我们可以稍后对其进行更改。

我们可以按照您的建议为每个命令使用不同的URI。这没有错,但是确实错过了机会。您会发现,REST中的重要思想之一是缓存。 HTTP定义cache invalidation语义;实际的方面是,如果您将/resource标识符用作表单操作,则成功的POST请求将自动使客户端的资源本地副本无效。

当然,这确实意味着您实现中的POST处理程序将必须确定要使用哪个命令-可能是通过查看发布请求正文中包含的信息来确定的; “ commandName”参数或类似参数。