2013-03-27 60 views
0

因此,當我編寫Web API時,我正在考慮如何處理髮生錯誤時的情況。我應該如何通知消費者發生了什麼以及如何糾正。我有一個錯誤對象,當消費者違反業務規則時,我會返回諸如錯誤號,消息,可能的原因和解決方案之類的內容。我的直接想法是返回POCO並在發生錯誤氣體時返回錯誤對象,但這意味着每個控制器都必須返回一個通用對象來允許這樣做。這似乎違反了合同或一些編程原則。我的意思是最終它總是會導致一個JSON對象,但對於控制器返回「對象」似乎很模糊返回動態/通用對象或POCO

+0

我不知道你的API是否寧靜,但如果是的話,你可以建立一個httpResponse(並使用http返回碼)。 – Pacane 2013-03-27 14:59:59

回答

0

而不是返回POCO對象或Error對象作爲'通用'對象,返回一個新的類使用C#仿製藥:

public class Response<T> 
{ 
    public T Value { get; set; } 
    public ErrorClass Error { get; set; } 
} 
+0

使用泛型返回動態對象對我有什麼好處嗎?它不是基本相同嗎?我有點想說什麼:這個動作的返回類型是.....除非出現問題,否則你將收到一個錯誤對象,在這種情況下,你會收到封裝在錯誤對象中的對象。這樣如果用戶調用.../product/create /他們可以期望產品對象。我猜這是無稽之談,因爲無論如何它會被序列化。另外,是否所有的返回類型都是相同的包裝對象,這是不錯的編程技術? – ecco88 2013-03-27 19:21:34