rest - 使用 GET 删除内容有什么问题?

标签 rest post get

我知道它违背了 REST 架构,但从实用的角度来看,使用 GET 请求方法从数据库中删除数据有什么问题?

假设我构建了一个具有管理面板的应用程序。在管理面板中,管理员可以通过访问这些 URI 来删除项目:

/admin-panel/items-controller/remove-action/id/X

其中 X 是要删除的项目的主键。

使用这种方法有什么实际缺点吗?请教育我,因为我不明白为什么应该使用 POST。

我使用 POST 删除数据的主要问题是,您必须在每个项目旁边使用 POST 方法打印表单,而不是简单的链接(易于在 CSS 中设置样式),然后将其样式设置为看起来像按钮/链接。还是我完全误解了?

最佳答案

三个字:搜索引擎蜘蛛。

或预取链接以加快浏览速度的浏览器插件。各种软件都隐含地假设可以自由地发出 GET 请求而不会产生负面影响。这不仅仅是 REST,HTTP 标准本身 ( RFC 2616 ) 是这样说的:

In particular, the convention has been established that the GET and HEAD methods SHOULD NOT have the significance of taking an action other than retrieval. These methods ought to be considered "safe". This allows user agents to represent other methods, such as POST, PUT and DELETE, in a special way, so that the user is made aware of the fact that a possibly unsafe action is being requested.

关于rest - 使用 GET 删除内容有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2392922/

相关文章:

python - 如何在url中发送批量数据?

java - Spring REST API 和国际化

java - 我应该如何设计我的 restful API 以通过 POST 以不同格式(JSON、CSV)接受数据以达到相同目的?

php - 使用更改鼠标坐标的 JQuery/Ajax 通过 post/get 传递变量到另一个文件

PHP-HTML 使用 input=text 更新 mysql,其中 POST ['submit' ]

post - 沙盒 paypal 经常性计费发布数据问题..未收到自动返回中的发布数据

c# - 在 Controller 操作之前调用的 WebAPI 函数

Java SpringBoot Rest OAuth2 主体为空

windows - 选择对象,不同的输出

HTTP 请求,正文 vs 参数 vs header vs 数据