2012-01-12 73 views
10

Twitter已经弃用使用使用DELETE的请求方法的所有方法,为什么Twitter会在其API中不再使用DELETE作为请求方法?

DELETE :user/lists/:id 

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

POST lists/destroy 

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

  • 是表现吗?
  • 安全吗?
  • 建立仅使用POST和GET的API的 的优点是什么?
+2

模糊猜测:post/get是网络的基石,最有可能通过内容感知防火墙,而删除可能不会。 – 2012-01-12 19:38:10

+0

@MarcB虽然它的确有意义,但它却违背了RESTful API设计的全部观点,它使用几种'其他'HTTP方法(DELETE,PUT,HEAD等)作为API'协议'的一部分。 – 2012-01-12 19:54:45

+6

@JamesBeith我注意到你回复了你的问题编辑,只是包括一个签名。不鼓励签名,两个删除它的修改都是有效的,请阅读[faq](http://stackoverflow.com/faq#signatures)。如果你愿意,你可以在你的个人资料页面上添加你的twitter句柄。 – yannis 2012-01-16 16:09:19

回答

7

我认为有一些客户端能够发出DELETE请求的兼容性问题。回顾一下docs的一个不赞成的电话,我发现了这个blurb。

使用说明:客户谁不能发出DELETE请求可以POST与 所添加的参数_method=DELETE

所以,我的感觉(你猜)是因为DELETE动词不是均匀支持,它在系统范围内被删除。


更新:我在微博发出了鸣叫泰勒(@episod),问他有什么想法上面,他送了以下对策:

@arcain [答案]几乎涵盖了它;没有不敬意的田园诗REST。 DELETE仍然通常适用于这些方法,但我们从文档中省略。 [link]

@arcain尽管这里提到的大多数方法并没有被弃用,但由于HTTP方法的原因,因为笨拙的URL模式而不推荐使用 。 [link]

因此,可用性 - 以及兼容性 - 似乎一直是关于弃用的关键问题。

相关问题