C# 当我的web api能够';由于第三方服务,无法执行操作

C# 当我的web api能够';由于第三方服务,无法执行操作,c#,asp.net-core,.net-core,asp.net-core-webapi,C#,Asp.net Core,.net Core,Asp.net Core Webapi,我正在开发一个用dotnetcore编写的C#webapi。我正在努力处理一个试图从另一台服务器上的第三方服务检索数据的操作的返回。如果试图从所述第三方服务获取数据时出现问题,那么在查看was 502坏网关时,对我来说最有意义的HTTP响应是: 服务器在充当网关或代理时接收到无效的 来自它在尝试访问时访问的上游服务器的响应 满足要求 但我找不到一个方法在我的行动中回报这一点IActionResult似乎没有此代码的实现。我想得对吗?Web Api包含了一些可能时应该使用的快捷方式方法,但是对于抛

我正在开发一个用dotnetcore编写的C#webapi。我正在努力处理一个试图从另一台服务器上的第三方服务检索数据的操作的返回。如果试图从所述第三方服务获取数据时出现问题,那么在查看was 502坏网关时,对我来说最有意义的HTTP响应是:

服务器在充当网关或代理时接收到无效的 来自它在尝试访问时访问的上游服务器的响应 满足要求


但我找不到一个方法在我的行动中回报这一点
IActionResult
似乎没有此代码的实现。我想得对吗?

Web Api包含了一些可能时应该使用的快捷方式方法,但是对于抛出的一些更常见的错误代码,它们只有一些

以下仅返回状态代码:

return StatusCode(HttpStatusCode.BadGateway);
最常见的回报是:

return NotFound() // 404
return Ok() //200
return InternalServerError() //500

您应该问自己,返回准确的错误代码是绝对必要的。你的前端需要知道吗?如果您已经在API中处理异常的日志记录,那么您可能应该返回一些更通用的内容,如
InternalServerError()

是否检查了日志记录。看起来BadGateway在那里…如果一切顺利,我打算返回一组信息。是否有一种常见的返回类型允许我发送错误的网关状态代码或类似于ObjectResult的东西?@JakeSmith我不确定您在这里要求什么。返回状态码(HttpStatusCode.BadGateway);我在上面发表的文章将向您返回所需的状态代码。请考虑在API调用失败时返回JSon对象。拥有自定义对象,在发生故障时构造,并在从API响应之前序列化。参考@richardmac,我得到了你的答案,这是有道理的。我想问的是,是否有一种通用类型允许我返回此状态码,正如您给出的示例所示,该方法的控制流由于错误或我从第三方服务成功检索的集合的ObjectResult而以这种方式发生。我很抱歉。IActionResult确实是这两个实现的接口。我错误地认为,由于方法的返回类型,我得到了一个错误,但实际上我必须将枚举强制转换为int。
StatusCode
接受int,我没有看到扩展方法或任何将
HttpStatusCode
枚举作为参数的方法。谢谢