将以下端点作为服务,根据其ID返回用户信息
/getUser?id=1234
客户端或监视工具如何区分ID不为1234的用户和请求不存在的页面的用户?
我对所有状态码都遇到同样的问题,例如500,我的基础架构团队告诉我,您报告的信息具有误导性,因为它们无法与500从我的服务来源和500从服务器本身的IIS来源中区分开来
答案 0 :(得分:0)
这是一个很好的问题。
大多数教程会很高兴地告诉您返回404的NotFound。我想那些人从来不必构建并支持生产级别的API。
您需要遵循一些约定并遵守这些约定。我更喜欢返回204而不是404。204表示调用成功,但是没有内容。这样,您将在数据不存在和端点不存在之间有明显的区别。
对于500,除非在服务器端发生了真正糟糕且不可恢复的事情,否则您的API绝不会返回500。我建议不要为所有事件高兴地抛出异常。如果您的业务规则不满意,那就没有理由扔东西。如果您的API无法访问您的数据库,则需要500才能使它变得很明显,这确实很糟糕。至于您报告的500期,我不同意。 IIS有其自己的日志,您的服务将有其自己的日志,因此是的,您的基础架构团队可以与众不同。