我们有一个 REST API,客户端会定期 POST 和 PUT 数据。当他们这样做时,有时他们会发布数据,这导致我们的系统没有任何变化。POST 和 PUT 格式正确,但它们发送的数据与我们数据库中的数据相同。发生这种情况时,我刚刚发现我们正在返回 400 HTTP 状态。不幸的是,这意味着“错误请求”,如“由于语法错误,服务器无法理解请求”。
显然情况并非如此,但我被告知我们将使用它,因为没有其他适当的状态代码。我们考虑过的选择:
- 304 未修改。遗憾的是,这仅适用于 GET 请求。
- 204 无内容。似乎很接近,但禁止实体。
其他选择似乎同样糟糕。我们可能会200 OK
在返回的 XML 文档中保留相关信息,但这似乎不是很“RESTish”。REST 世界通常如何处理这个问题?
(固定未修改响应代码。感谢 Mkoeller)