目前正在设计一个 REST API 并且不确定如何最好地处理撤消操作,出于帖子的目的忽略安全性,因为这已经被处理了。
当前用户资源有一个余额连接,
GET https://api.example.com/user/1/balance
{"balance":10}
将返回用户余额。
有 2 种方法我能想到从这个余额中提取,要么在余额连接上删除,要么新连接提取,然后将金额发布到此连接。
DELETE实施 - 撤销 5 分
DELETE https://api.example.com/user/1/balance?amount=5
{"balance":5}
POST执行 - 撤销 5 分
POST https://api.example.com/user/1/withdraw
HTTP BODY: amount=5
{"balance":5}
建议?
就我个人而言,我会在撤消连接上进行POST ,因为这将操作与数据分开,然后可以使用GET 获取撤消交易并使用DELETE取消交易。
更新
另一种方法是在balance对象上创建一个交易连接,然后POST到这个。
POST https://api.example.com/user/1/balance/transactions
HTTP BODY: amount=-5
{"balance":5}
这会是更好的方法吗?然后,这将在余额资源上创建事务资源。