2010-11-12 51 views
1

當你設計你的Web服務API時,你如何組織你的錯誤代碼?Web服務API錯誤代碼?

我的意思是,你如何跟蹤您的API錯誤代碼,這樣你可以避免同一錯誤等兩條錯誤代碼(似乎有太多的錯誤代碼,以跟蹤???)的

回答

0

在您的開發人工產物的哪些位置出現錯誤代碼。我通常不會在我的WSDL中使用枚舉(也許我應該),但是我的(Java)代碼中有枚舉或靜態常量。因此,如果將所有這些組合在一起,在添加新項目之前掃描現有列表非常容易。但是,我不確定避免重複是一件好事。最後,只要你能夠可靠地解釋錯誤代碼,如果你有重複的話,它並不重要。所以

10034 - disk full 
23487 - disk full 

似乎並沒有做太多的傷害,而如果你在你的代碼已經在不同的點

10034 - disk full 
10034 - invalid input 

然後我們有一個問題。因此,我傾向於將錯誤代碼的範圍分配給不同的子系統,並讓子系統設計自己的代碼。這意味着使用任何給定的錯誤代碼的地方往往很少,因此錯誤代碼的快速文本搜索(或grep)會將我帶到報告問題的代碼的位置。

+0

我猜如果它的重複沒有太大關係,但如果相同的代碼意味着兩個不同的東西,那將是一個問題。 – 001 2010-11-12 08:01:04

1

我想有兩個,因爲有具有兩個錯誤代碼(API和服務的)優勢:

  • 安全 - 你不應該通過服務來推動API /後端細節,用戶/消費者在生產時。有兩個錯誤代碼意味着有人試圖通過服務攻擊您的後端,無法使用該信息。
  • 區域驗證 - 使用兩個代碼,您可以看到錯誤來自哪裏(服務與API)。
  • 您可以更改後端,這可能會引入新代碼(或者會產生與舊代碼衝突的新代碼),並且Web服務保持穩定並且錯誤代碼可以爲您的客戶保持工作。
0

強制開發人員明確從中央位置獲取數字(可能是數據庫序列)。

你甚至可以通過在你的Intranet上提供一個頁面來開發這個頁面,在這個頁面上開發人員應該先收集錯誤的描述,然後獲得錯誤號。將錯誤描述與錯誤編號一起放入數據庫中。您可以允許其他人進一步擴展並在此數據庫之上構建錯誤文檔。