REST API - 错误处理的最佳方法

问题描述 投票:0回答:2

构建 API 响应时,哪种方法更适合(手动)返回状态码以指示请求的有效性:

1 - 在 JSON 响应中嵌入响应代码

{
  'status_code' => 200,
  'status_message' => 'OK',
  'data' => { ... }
}

2 - 或者修改 HTTP 标头状态字段是否更好?

Request URL:http://somesite.com
Request Method:GET
Status Code: 200 (EDITING THIS ONE)

我认为 HTTP 状态应该只涉及服务器级别发生的连接错误和文件检索错误,而不是更改它来解决应用程序级别错误。

任何好的文章和资源可供阅读,我们也将不胜感激。

ajax http-headers http-response-codes
2个回答
2
投票

我发现在 REST 请求中呈现错误的最佳方法是将 HTTP 状态代码更改为正确的错误,并将错误嵌入到响应中。

如果您使用 JSON,它可能看起来像这样,在此示例中状态代码设置为 500:

{"error" : "An error has occurred while trying to read from the database."}

这与Microsoft CRM 用于报告错误的方法相同,并且已被证明是一个很好的方法;如果 RESTFul 应用程序需要 JSON(或 XML,如果您正在使用它),则它们不会无法解析响应。


1
投票

这个问题解决了同样的问题(也许从稍微不同的角度)。

我认为,一般来说,如果对应用程序中的资源的请求导致错误情况,则该事实应该反映在 HTTP 标头中。您可以使用应用程序响应来提供更详细的信息。

更新这里是应用程序错误到状态代码(由 Azure 使用)的有趣映射。

© www.soinside.com 2019 - 2024. All rights reserved.