如何区分IIS的状态码和Web API应用程序的状态码

时间:2019-03-10 17:12:48

标签: iis asp.net-web-api apm

将以下端点作为服务,根据其ID返回用户信息

/getUser?id=1234

客户端或监视工具如何区分ID不为1234的用户和请求不存在的页面的用户?

我对所有状态码都遇到同样的问题,例如500,我的基础架构团队告诉我,您报告的信息具有误导性,因为它们无法与500从我的服务来源和500从服务器本身的IIS来源中区分开来

1 个答案:

答案 0 :(得分:0)

这是一个很好的问题。

大多数教程会很高兴地告诉您返回404的NotFound。我想那些人从来不必构建并支持生产级别的API。

您需要遵循一些约定并遵守这些约定。我更喜欢返回204而不是404。204表示调用成功,但是没有内容。这样,您将在数据不存在端点不存在之间有明显的区别。

对于500,除非在服务器端发生了真正糟糕且不可恢复的事情,否则您的API绝不会返回500。我建议不要为所有事件高兴地抛出异常。如果您的业务规则不满意,那就没有理由扔东西。如果您的API无法访问您的数据库,则需要500才能使它变得很明显,这确实很糟糕。至于您报告的500期,我不同意。 IIS有其自己的日志,您的服务将有其自己的日志,因此是的,您的基础架构团队可以与众不同。