响应的幂等 POST 方法标头

问题描述

我正在实现一个幂等的 POST 方法。所以在请求中,我有一个强制标头 X-Request-Id.
在后端,我正在检查是否有具有相同 X-Request-Id 系统的资源返回现有资源而不是创建新资源。

我的问题是。是否有任何标准的响应头,如果已经创建的资源应该返回?

解决方法

我认为这方面没有任何标准。

如果从您的设计 POV 来看,这应该表示成功(尽管是特殊的),我会为第一次调用使用 201(即 CREATED),为后续调用使用 200(即 OK)。

如果您将其视为错误(尽管我觉得很奇怪),那么我会为第一次调用选择 200(即 OK),为后续调用选择 409(即 CONFLICT)。

无论您选择哪一个,最重要的是,正如您所知,在您的 API 中保持一致和可预测。

状态码上的 MDN:https://developer.mozilla.org/en-US/docs/Web/HTTP/Status