【发布时间】:2012-06-19 14:25:05
【问题描述】:
我有一个 REST 端点接受 POST 请求以将代码标记为已兑换。该代码只能在特定日期之间兑换。
如果有人尝试提前兑换代码,我应该如何应对?
我怀疑 HTTP 403,禁止,是正确的选择,但 w3c 声明“the request SHOULD NOT be repeated”,而在这种情况下,我预计请求会在以后重复。
【问题讨论】:
-
相同的 URI 是否响应 GET?总是或仅在特定日期之间?
-
那种。代码表示可以在它上线之前被 GETted。赎回是可以针对代码创建的单独表示。正是这个 POST 请求创建了兑换。显然,创建之前的 GET 将返回 404,因为该兑换不存在(请注意,此 GET 将使用兑换 ID 而不是代码)。
-
POST 是否在该 URL 创建资源?其他?一个都没有?
-
POST 用于兑换/并创建兑换资源,然后可在兑换/{ID} 上获取。成功 POST 后,完整的 URL(包括 ID)将在位置标头中返回。 POST 之前没有兑换资源,所以 GET 什么都没有。
-
层次结构有一个活动(具有开始日期),针对活动生成的代码,然后(在活动开始后)针对每个代码进行 1-n 次兑换。活动和代码在开始日期之前可用,但不允许兑换代码。