我正在用C#編寫OData webservice,我需要一些關於如何處理無效請求的建議?如果客戶在他們不再擁有的物品上請求服務,則會出現一個錯誤示例。我希望能夠確切地向顧客報告爲什麼它是無效的,因爲有多種可能的原因。OData中的無效請求處理
非常感謝
我正在用C#編寫OData webservice,我需要一些關於如何處理無效請求的建議?如果客戶在他們不再擁有的物品上請求服務,則會出現一個錯誤示例。我希望能夠確切地向顧客報告爲什麼它是無效的,因爲有多種可能的原因。OData中的無效請求處理
非常感謝
我會推薦使用FaultContracts作爲OperationContract的一部分。您可以像DataContracts一樣定義它們,並像處理自定義異常一樣處理異常。
[OperationContract]
[FaultContract(typeof(ItemNotOwned))]
Item GetItem(int ItemId);
您將ItemNotOwned定義爲單獨的合同定義。
檢查出來的MSDN:http://msdn.microsoft.com/en-us/library/ms733841.aspx#Y323
只是拋出一個異常,幷包含該信息的消息。該異常將被序列化爲發送給客戶端的響應。如果您不關心響應狀態代碼,則會發生任何異常並且客戶端將收到500(內部服務器錯誤)。如果你想要一個特定的狀態碼,拋出一個DataServiceException的實例。
看看使用QueryInterceptors和ChangeInterceptors
看起來像它只是爲SOAP。我使用REST –
哦,是的,錯誤只是SOAP。如果您使用HttpClient進行REST,那麼正常的異常將被序列化。不過,你需要在電線的另一端放鬆它們。 –