【发布时间】:2017-07-05 06:37:40
【问题描述】:
我有一个关于在 Web API 中返回错误的问题。此 Web API 通常从 javascript(网站)调用。 返回错误有两种可能,一种是作为字符串返回,另一种是作为整数错误码返回。
将错误作为错误代码返回的 JSON 示例:
{
"status" : "Error",
"error" : 30
}
以错误字符串形式返回错误的 JSON 示例:
{
"status" : "Error",
"error" : "ERR_INVALID_FILENAME"
}
您认为最好的方法是什么?我认为错误字符串选择更好,因为以下原因:
-
错误字符串选项通过引入自注释代码提高了代码的可读性和可维护性。 因为,在错误代码方法中,javascript 开发人员会写:
if (result.error == 30) { do something related to files and invalidness...}在错误字符串方法中,javascript 开发人员会写:
if (result.error == "ERR_INVALID_FILENAME") { do something related to files and invalidness...} 在浏览器渲染、HTML dom 操作和 AJAX HTTP 请求处理的宏伟计划中,这个小小的错误字符串检查是微不足道的开销。虽然在 C++ 或 C# 应用程序中我们显然会使用枚举,但我们在 web api 和网站等两个独立实体中没有这样的选择,而且成本回报似乎是合理的。
感谢您的意见。
【问题讨论】:
-
我同意你的说法,但这个问题可能更适合软件工程社区。span>
-
@Itay 你找到解决方案了吗?
-
@JoseFrancis 只有两种意见,我希望这个问题有更多的答案。最近几天我想到的一个额外的额外输入是,在 API 中,错误(即使它们在 JSON 化时被字符串化)应该驻留在枚举中并且应该是强类型的(以便可以签入编译时间)。
标签: javascript json api asp.net-web-api error-handling