我将开始使用名为Slim的PHP REST框架工作,并且有一些关于PUT和DELETE的文档,所以我想知道如果我可以删除数据库中的记录,我是否应该打扰它GET或POST也是如此。
有什么好处吗?
答案 0 :(得分:3)
99%的惯例,但有用的约定。知道什么样的请求进入并使API使用更容易(而不是强迫开发人员记住添加action=blah
,你可以告诉他们“无论什么时候你想删除某些东西 - 同样的请求,{{ 1}}动词)。
剩下的1%是通过一个简单的事实:使用DELETE
避免在DELETE
或GET
变量中添加额外参数来表示删除。通过选择可修改的字段而不是添加额外的字段,不必重复自己节省了这些字节。如果不这样做,就没有必要增加复杂性。
需要注意的事项还包括:动词的幂等性。这是一个惯例,但是POST
应该是幂等的,因为它很容易通过浏览器请求触发。应该“安全重复”。
(最后有用的一点:大多数MVC框架通过HTTP动词分割端点。保存你的if!)
答案 1 :(得分:2)
使用POST进行DELETE几乎没有什么害处,除了它对开发人员不那么明显,中间人无法看到你删除了什么。
然而,对于DELETE使用GET将是一个可怕的坏主意。 HTTP规范说GET操作必须是安全的,删除某些东西是不安全的。有许多实际的原因,你不应该使用GET删除,有点谷歌搜索应该找到大量的信息。
当“完全替换”语义适合您的场景时使用PUT。否则,不要打扰恕我直言。
答案 2 :(得分:0)
它用作将请求映射到操作的方式,将请求的类型拆分为元信息(即GET
),将实际数据拆分为在查询/正文中传递的内容(与发送方式相反)另一个查询字符串参数,用于说明操作,例如uri中某处的action=delete
或/delete/
。
您选择了一个使用REST“规则”的REST框架 阅读有关REST的更多信息 - https://en.wikipedia.org/wiki/Representational_state_transfer