Web服务API错误代码?

时间:2010-11-12 07:13:15

标签: c# web-services api

设计Web服务API时,如何组织错误代码?

我的意思是你如何跟踪你的API错误代码,这样就可以避免为同一个错误代码提供两个错误代码(似乎有太多的错误代码可以跟踪???)

3 个答案:

答案 0 :(得分:1)

我会有两个,因为有两个错误代码(API和服务代码)是有好处的:

  • 安全性 - 您不应该在生产时通过服务向用户/消费者推送API /后端详细信息。有两个错误代码意味着某人试图通过该服务攻击您的后端无法使用该信息。
  • 区域化 - 使用两个代码,您可以看到错误来自哪里(服务与API)。
  • 您可以更改后端,这可能会引入新代码(或者新代码与旧代码冲突),并且Web服务保持稳定,错误代码仍然适合您的消费者。

答案 1 :(得分:0)

您的开发工件中的哪些点会出现错误代码。我通常不在我的WSDL中使用枚举(也许我应该)但我在我的(Java)代码中有枚举或静态常量。因此,如果将所有这些放在一起,则在添加新项目之前扫描现有列表非常容易。但是,我不确定避免重复实际上是件好事。

最后,只要您能够可靠地解释错误代码,如果您确实有重复项,那么实际上并不重要。所以

 10034  - disk full
 23487  - disk full

似乎没有太大的伤害,而如果你的代码中有不同的点

 10034 - disk full
 10034 - invalid input
然后我们遇到了问题。因此,我倾向于将错误代码范围分配给不同的子系统,并让子系统设计自己的代码。这意味着使用任何给定错误代码的地方往往很少,因此错误代码的快速文本搜索(或grep)将我带到报告问题的代码中。

答案 2 :(得分:0)

强制您的开发人员从中心位置显式获取数字(可能是数据库序列)。

您甚至可以通过在Intranet上提供一个页面来进一步利用这一点,开发人员在获取错误号之前首先填写错误描述。将错误描述与错误编号一起放在数据库中。您可以允许其他人进一步扩展,并在此数据库之上构建您的错误文档。