为什么Twitter不推荐在其API中使用DELETE作为请求方法?

Jam*_*ith 10 api twitter httprequest

Twitter已弃用使用DELETE作为请求方法的所有方法,

DELETE :user/lists/:id  
Run Code Online (Sandbox Code Playgroud)

而现在使用POST作为请求方法,

POST lists/destroy
Run Code Online (Sandbox Code Playgroud)

为什么Twitter已经完全停止在他们的API中使用DELETE,现在只对所有方法使用POST和GET?

  • 是性能吗?
  • 安全吗?
  • 构建仅使用POST和GET的API有什么好处?

arc*_*ain 7

我认为某些客户端能够发出DELETE请求存在兼容性问题.回顾一个已弃用的调用的文档,我发现了这个模糊.

使用备注:无法发出DELETE请求的客户端可以POST使用添加的参数_method=DELETE

所以,我的感觉(并且猜测)是因为DELETE动词没有被统一支持,所以它在系统范围内被删除了.


更新:我在推特上向泰勒(@episod)发了一条推文,询问他对上述内容的看法,并发出以下回复:

@arcain [答案]几乎涵盖了它; 对田园诗般的REST没有任何不尊重.DELETE仍然通常适用于这些方法,但我们省略了docs.[ 链接 ]

@arcain虽然提到的大多数方法都没有因为HTTP方法而被弃用,因为笨拙的URL模式.[ 链接 ]

因此,可用性 - 以及兼容性 - 似乎是弃用的主要问题.