【发布时间】:2017-10-07 17:41:50
【问题描述】:
我觉得返回有意义的 HTTP 响应是个好主意,但我正在尝试找到正确的方法来处理它。
在我的 ASP.NET Core Web API 应用程序中,端点(即 API 操作方法)只需接收请求,调用我的业务层以获得响应并返回响应。
在业务层,我检查请求是否被授权。如果它未经授权,我会抛出一个异常,指示异常类型,即未经授权的请求,但在这些情况下,我的 API 端点只返回一个 HTTP 500。我宁愿返回HTTP 401。
问题是如何将我的低级别异常转移到HTTP 状态码。
两个问题:
- 是否值得尝试捕获应用程序中较低级别发生的异常类型并尝试将其转换为
HTTP响应,还是应该让我的 API 返回一个HTTP 500? - 如果值得,我该如何处理?
【问题讨论】:
-
SO 是讨论 5xx 与 4xx 与响应错误消息的错误地点。
-
@Sam - 我同意 Alexei 的观点,这个问题在这里是题外话。但是,如果您将问题改写为“如何”而不是“我应该”这样做,这将是一个合理的问题。
标签: c# api asp.net-web-api asp.net-core asp.net-core-2.0