我应该在post或url中存储_method = PUT / DELETE

我正在使用ASP.NET MVC来构建RESTful Web应用程序,我计划通过POST隧道传递PUT和DELETE请求,因为它似乎是最实用的解决方法。

我想知道的是,我应该通过这样的url传递信息:

或者我应该通过发布的表单数据进行隧道传输,如下所示:

 

各自的优点和缺点是什么?

编辑:我提出这个问题的原因之一是我在某个地方读到将这样的信息放在url中是一件好事,因为post数据通常会丢失,但url会挂起(在日志文件中等) – 不幸的是它会使url看起来很难看

这更多的是个人偏好。 Restful Web Services,OReilly,在某种程度上可以互换地描述。

话虽如此,出于程序员意图的原因,我更喜欢第一种方法。 在rest时,当我查看代码时,我精神上阅读

VERB http://someuri.com/someresource/id

动词和资源紧密相连。

使用PUT和DELETE,您必须使用类似于您所显示的解决方法。 在第一个示例中,资源和动词在同一行上仍然靠近在一起。

但是,在第二个示例中,资源分为两行。 动词与资源ID位于同一行,但远离资源名称。 这非常非常小,但对我来说,这使得第二个例子的可读性降低。

你看过这个问题吗? 据我所知,x-http-method-override标头是解决此问题的首选方案。

不是我有,但你不应该使用:

 

和/或

 

…?

它们是等价的。

虽然如果按下我宁愿自己发帖,但这是主观的。