2014-02-13 76 views
2

我的api控制器需要使用2個參數實現一個簡單的GET操作:一個ItemID和一個SectionID。 返回類型ItemInSection包含有關該部分中項目的數據。從ASP.Net Web API控制器重定向操作

相同的項目可以在多個部分。這就是爲什麼SectionID是必需的。

如果項目已被移動並且不再位於相應的部分,我需要返回一個重定向代碼301,其中包含該項目的某個部分對應的位置url。

這樣做的最好方法是什麼?

對於其他錯誤(例如404,401 ...)代碼,我使用HttpResponseException。但對於301情況,如何指定重定向url?

+0

難道你們就不能使用API​​來檢查,如果該項目存在?那麼,如果它已被移動並且不再位於相應的部分,那麼重定向用戶?我不知道如何使用HTTP響應異常方法 - 也許有一個參數可以使用。 – Lopsided

+0

在我看來,對API施加兩個連續調用不是REST體系結構。 – nlips

回答

4

解決方案只是使用HttpResponseException(HttpResponseMessage response)構造函數(而不是構造函數採取簡單的HttpStatusCode)。

只要寫:

HttpResponseMessage response = new HttpResponseMessage(HttpStatusCode.Moved); 
response.Headers.Location = ...; 
throw new HttpResponseException(response); 
相關問題