相关疑难解决方法(0)

REST,HTTP DELETE和参数

是否有任何关于为HTTP DELETE请求提供参数的非RESTful?


我的情况是我正在建模"您确定要删除它吗?" 场景.在某些情况下,资源的状态表明请求的删除可能无效.你可以想象一些自己需要确认删除的场景

我们采用的解决方案是将参数传递给删除请求以指示可以继续删除("?force_delete = true")

例如

DELETE http://server/resource/id?force_delete=true
Run Code Online (Sandbox Code Playgroud)

我相信它仍然是宁静的:

(a)DELETE的语义没有被改变 - 用户仍然可以发送正常的DELETE请求,但这可能会失败,409响应的主体将解释原因.我说可能会失败,因为(出于不值得解释的原因)在某些情况下没有理由提示用户.

(b)Roy的论文中没有任何内容表明它违背了REST的精神 - 为什么会有,因为HTTP只是REST的一个实现,所以为什么传递HTTP参数很重要


有人能指出一个明确的陈述,指出为什么这不是RESTful?

在一个相关的问题上,如果用户没有指定force_delete然后我正在返回409 Conflict- 这是最合适的响应代码吗?


跟进

经过一些进一步的研究,我认为向DELETE添加参数可能违反了几个原则.

首先,实施可能违反了"统一界面"(参见Roy的论文第5.1.5节)

通过添加'force_delete',我们在已经很好定义的DELETE方法上添加了一个额外的约束.这种约束只对我们有意义.

您还可能认为它违反了"5.1.2客户端 - 服务器",因为确认对话确实是UI问题,并且并非所有客户端都希望确认删除.

有人建议吗?

rest http

126
推荐指数
4
解决办法
11万
查看次数

标签 统计

http ×1

rest ×1