1

我有一个我们打算用来批准交易的网络服务。

这是一个批处理过程,但我们认为 PUT 是最合适的方法,但认为它通常应该保留给单个事务。

我们是否应该在此过程中坚持使用 PUT 并传递类似于以下内容的有效负载:

{
    "Transactions": [
        {
            "TxId": "gtx-32",
            "VendorUserId" "76",
            "Status": "A"
        },
        {
            "TxId": "gtx-76",
            "VendorUserId" "76",
            "Status": "D"
        }
    ]
}

以上会将 TxId: gtx-32 设置为状态 A 和 TxId: gtx-76 设置为状态 D

然后,我们将回复那些具有更新状态的交易的 json 对象。

如果任何一个事务请求更新到无效状态,则响应将简单地具有针对事务的“旧”状态(我们是否应该在其中包含错误消息?)。

如果 PUT 不是在这里采用的正确方法,我们欢迎对替代方案提出建议。

我们知道这实际上只是记录的部分更新,因此不是真正的 PUT,但这绝对是更新......

4

1 回答 1

4

这个PUT动词的意思是“把这个文件放在这里”。重要的是,PUT请求的 URL 旨在成为文档应该“存储”的位置,即GETURL 上的 a 将返回最后放置在那里的文档。

在您的情况下,除非您将您的批次信息“上传”到特定位置并且可以将您的批次视为自身的文档,PUT否则可能不是您的意思。

相反,您可能应该使用更通用的POST,旨在用于要求现有资源处理请求中包含的文档。然后响应表示处理操作的结果。

POST可能是 HTTP 协议中最通用的动词。“过程”可以是你需要的任何东西,所以当你没有发现任何其他动词反映你想要执行的活动时,通常最好选择它。

于 2012-12-20T12:41:55.480 回答