选择正确的Http方法

时间:2018-08-07 10:27:35

标签: rest http httpapi

我有一个学生资源和一个课程资源,我需要编写一个控制器和方法来注册和注销学生。我应该使用哪种正确的http方法进行注册和注销。

1 个答案:

答案 0 :(得分:2)

  

我应该使用哪种正确的http方法进行注册和注销。

EnrollDisenroll听起来像您期望更改资源的表示形式(可能不止一个)。因此,您可以立即关闭任何safe方法(GET,HEAD,OPTIONS等)。

设计REST api的一种很好的启发方法是像网站一样对其进行建模。那么,用于注册学生的Web UI会是什么样?可能是一堆带有表单的页面,提交表单后,您会更改资源。

我们知道答案是表格,因为网页上的链接隐式链接到安全的GET方法,这不是更改资源的好选择。同样,我们知道表单的方法也需要不安全。 HTML表单支持的唯一不安全方法是POST;事实证明这很好。

另一个选择是在远程创作环境上对API进行建模。在这种习惯用法中,客户端会将资源的表示形式加载到其编辑器中,进行更改,然后将更改后的表示形式发送回服务器。 PUT是最简单的选择-将整个修改后的表示形式发送回服务器。如果您只想将编辑内容发送到服务器,则PATCH是可以接受的选择。

重点是为您的域提供一个与通用http组件完美配合的接口。缓存和浏览器可以通过表示来做正确的事情,而无需了解消息的细节。