1

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

/getUser?id=1234

客户端或监控工具如何区分 id = 1234 的用户不存在与请求页面不存在的用户?

我对所有状态代码都有同样的问题,例如 500 我的基础架构团队告诉我,您报告了误导性信息,因为他们无法区分来自我的服务的 500 和来自服务器本身 IIS 的 500

4

1 回答 1

0

这个问题问得好。

大多数教程会很高兴地告诉你返回 NotFound,它是 404。我猜那些人从来不需要构建和支持生产级 API。

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

至于 500,你的 API 永远不应该返回 500,除非在服务器端发生了非常糟糕且不可恢复的事情。我建议不要愉快地为所有事情抛出异常。如果您的业务规则不满足,那没有理由抛出任何东西。如果您的 API 无法访问您的数据库,则需要 500 才能表明发生了非常糟糕的事情。至于你报道的 500 问题,我不同意。IIS 有自己的日志,您的服务将有自己的日志,所以是的,您的基础架构团队可以区分。

于 2019-03-10T19:14:20.953 回答