仅当部分数据可用时,HTTP响应检索资源

时间:2017-01-11 11:26:20

标签: rest api http http-response-codes

如果已经有答案,我道歉。我发现了相关问题(例如HTTP status code for a partial successful request)但不完全相同。

我正在构建一个API,它返回从多个来源汇总的数据。有时,数据的某些关键部分不可用,必须让客户知道并且错误数据包含在响应中。

除了缺失字段的严重性之外,资源的其余部分是有效且有用的,可以视为部分更新(例如,如果您只有权查看资源的一部分)。

到目前为止,选项是

  1. 返回200,将其视为部分资源,像处理任何其他数据一样处理应用程序中的错误数据字段
  2. 返回207以强调它没有完全成功,但207不是严格的HTTP。
  3. 返回500并在应用程序中处理成功返回的数据,就像在200
  4. 上一样

    我偏向于选项1,但我并不完全相信。有一个明确的方法处理这个?也许定义一个特定的content-type

1 个答案:

答案 0 :(得分:3)

你在这里忽略了这一点,因为500表示系统或通信链失败,并且由于返回了数据,因此必须假定资源存在并被找到。 OP指出的是部分结果,暗示与资源有关的复合数据。这是必要的,除了你已经选择了一个合同,其中部分数据是错误的,因此是一个成功的200,http必须在http的范围之外完成它的工作。