【发布时间】:2022-02-17 15:22:35
【问题描述】:
我是 Asp.net 核心 Web API 的新手。
如果我们不确定特定的状态码,返回 Problem(errorMessage) 是在 asp.net 核心中返回任何类型错误的正确方法。
下面是我的代码,
[HttpPost]
public async Task<ActionResult> Post([FromForm] MyModel request)
{
var (success,statuscode, errorMessage) = await _service.MyMethod(Id, request);
return success ? Ok() : Problem(errorMessage, statusCode: statuscode);
}
如果出现任何错误,MyMethod 方法将返回 BadRequest 或 UnprocessableEntity 状态代码。
那么,在 Problem() 中返回错误是否正确?
提前致谢!
【问题讨论】:
-
您的服务不应直接与 HTTP 状态代码耦合。我通常会制作服务可以抛出的自定义异常,并添加一个全局过滤器,可以将这些异常转换为适当的 HTTP 响应。这样你就不必为每个操作添加相同的错误处理代码
标签: c# rest asp.net-core asp.net-core-webapi