2009-06-11 77 views
0

我正在開發一個REST-ful webservice,並且我有一個關於HTTP PUT方法的問題。HTTP PUT的替代機構

我想允許人們使用應用程序/表單數據請求主體提交內容。但是,默認響應將在application/xml中。

這是可以接受的嗎?

埃弗特

回答

2

內容類型僅在單個請求的範圍內很重要。他們所做的只是描述正在發送的內容的格式。

您的網絡服務應提供客戶請求最能接受的響應,它能夠提供。客戶端請求應包含描述可接受內容類型的Accept頭。如果你的服務不能提供任何在此標頭中的內容類型,然後返回406 Not Acceptable

在你的情況,如果您的客戶端請求GET包括application/xml在接受頭則是罰款與application/xml迴應,無論任何PUT的對請求的資源提出請求。

編輯:

status code definition406 Not Acceptable包括具有以下的說明:

注:HTTP/1.1服務器被允許返回其是 不能接受根據在發送的接受標頭的響應 請求。在某些情況下,這甚至可能比發送迴應更可取。鼓勵用戶代理檢查傳入響應的頭部以確定其是否可接受。

因此,您可以隨時返回application/xml

0

RESTful服務應該使用正確的HTTP方法(GET,HEAD,PUT,DELETE或POST)的行動,確保任何作用域信息包含在所述URI,並確保該HTTP消息信封確實不包含另一個信封,即SOAP。

Roy Fieldings 2000 Ph.D. dissertation: Architectural Styles and the Design of Network-Based Software Architectures構成REST的基礎。

+0

有趣的文章,但它並沒有回答我的問題.. 例子: 我換上新的文章/文章/ firstpost,我得到的選項,使用的內容類型任一應用程序/ XML或應用程序的/形式數據。我選擇後者。 然後我在文章上做了一個GET,並且我收到了application/xml表示形式。這可以嗎? – Evert 2009-06-11 19:09:41