簡體   English   中英

我應該將 _method=PUT/DELETE 存儲在帖子中還是 url 中

[英]Should I store _method=PUT/DELETE in the post or in the url

我正在使用 ASP.NET MVC 構建一個 RESTful web 應用程序,我計划通過 POST 隧道 PUT 和 DELETE 請求,因為這似乎是最實用的解決方法。

我想知道的是,我是否應該像這樣通過 url 傳輸信息:

<form method='post' action='resource?_method=DELETE'>
    <!-- fields -->
</form>

或者我應該像這樣通過發布的表單數據對其進行隧道傳輸:

<form method='post' action='resource'>
    <input type='hidden' name='_method' value='DELETE' />
    <!-- fields -->
</form>

以及各自的優缺點是什么?

編輯:我問這個問題的原因之一是我在某處讀到,將這樣的信息放在 url 中是一件好事,因為發布數據通常會丟失,但 url 會掛起(在日志文件等中) - 不幸的是它使url 難看

你見過這個問題嗎? 據我了解,x-http-method-override header 是解決此問題的首選方案。

這更多的是個人喜好。 Restful Web Services,OReilly,對兩者的描述有些互換。

話雖如此,出於程序員的意圖,我更喜歡第一種方法。 在 Rest 中,當我查看代碼時,我在心里讀到

動詞http://someuri.com/someresource/id

動詞和資源緊密相連。

使用 PUT 和 DELETE,您必須使用您所展示的解決方法。 在第一個示例中,資源和動詞仍然緊靠在同一行上。

但是,在您的第二個示例中,資源被分成兩行。 動詞與資源 ID 位於同一行,但遠離資源名稱。 這是非常非常次要的,但對我來說,這使得第二個示例的可讀性降低。

不是我有,但你不應該使用:

<form method="put" action="resource">
    <!-- fields -->
</form>

和/或

<form method="delete" action="resource">
    <!-- fields -->
</form>

...?

它們是等價的。

雖然如果按下,我更願意自己在帖子中發送,但這是主觀的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM