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 状态应该只与发生在服务器级别的连接错误和文件检索错误有关,而不是改变它来解决应用程序级别的错误。

任何好的文章和资源也将不胜感激。

4

2 回答 2

2

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

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

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

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

于 2011-11-24T03:34:37.257 回答
1

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

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

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

于 2011-11-24T03:22:39.650 回答