首页 > 解决方案 > 选择正确的 Http 方法

问题描述

我有一个学生资源和一个课程资源,我需要编写一个控制器和方法来注册和退出学生。我应该使用什么类型的 http 方法来注册和取消注册。

标签: resthttphttpapi

解决方案


我应该使用什么类型的 http 方法来注册和取消注册。

Enroll听起来您希望更改资源的Disenroll表示形式(可能不止一个)。因此,您可以立即关闭任何安全方法(GET、HEAD、OPTIONS 等)。

设计 REST api 的一个很好的启发式方法是将其建模为网站。那么用于招收学生的 Web UI 会是什么样子呢?可能是一堆带有表单的页面,当表单提交时,您更改了资源。

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

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

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


推荐阅读