我有一个我们打算用来批准交易的网络服务。
这是一个批处理过程,但我们认为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,但这绝对是更新......
答案 0 :(得分:4)
PUT
动词旨在表示“将此文档放在此处”。重要的是,PUT
请求的URL应该是文档应该“存储”的位置,即URL上的GET
将返回最后放在那里的文档。
在您的情况下,除非您将批量信息“上传”到特定位置,并且可以将您的批次视为自己的文档,PUT
可能不是您的意思。
相反,您应该使用更通用的POST
,旨在用于请求现有资源处理请求中包含的文档。然后,响应表示处理操作的结果。
POST
可能是HTTP协议中最通用的动词。 “过程”可以是您需要的任何东西,因此当您没有发现任何其他动词反映您想要执行的活动时,通常最好选择。