2012-03-10 50 views

回答

6

不要這樣做!針對這種情況使用正確的HTTP響應代碼。例如,如果用戶發佈一個新的記錄到您的系統:

POST record/id 
New record stuff 

提供反饋不僅有微笑笑臉HTML表示,同時也爲正確的HTTP響應代碼。 (即HTTP 201 - 創建)

201 Created 
+0

只有部分正確。如果事先知道用戶代理(UA)記錄的「ID」,則使用正確的方法(在技術上可能的情況下)是PUT。如果UA不知道'id'並且分配給服務器端,則服務器應該以201響應碼作爲響應,並使用'Location'頭來向UA指示新創建的資源的URI。 (我想澄清一下,因爲OP特意詢問重定向。) – MicE 2012-03-10 21:27:59

+0

@MicE感謝您的澄清! – supertopi 2012-03-11 11:19:31

+0

由於我原來的帖子,我一直在尋找一些現有的靈感框架,我發現Yii框架似乎只是我最初的建議.. – jx12345 2012-03-13 20:14:34

2

你應該回應與語義的答案是「創建」行動,同時顯示了新創建的記錄,這通常被認爲是一種常態。

此外,添加一個位置標題,指示新添加的項目的「讀取」操作甚至更好。

您可能想看看Richardson Maturity Model的觀點,Martin Fowler寫了一個很好的article

+0

謝謝,剛剛讀過你提到的文章,它真的總結它很好,再次感謝 – jx12345 2012-03-13 20:55:30

2

如果您正在創建一個記錄,則建議使用HTTP 201狀態碼。

但是在某些情況下您可能需要重定向。例如,您的api不再處於當前網址中,並且您希望將用戶重定向到新網址。

+0

以及那是我發現的那種,我在數據庫中創建的東西,然後使用現有的'視圖',我用來查看一個事情,但然後任何相關鏈接將被打破beacuase我會例如。com /創造而不是我應該是的地方ie。 example.com/view/1,所以我決定使用重定向,但我覺得不對。 – jx12345 2012-03-13 20:58:09

相關問題