我试图了解RESTful API的范围和限制.我的具体问题是:如何处理REST暴露操作而不是资源的API?我是否应该放弃暴露操作的诱惑并重新考虑API以暴露数据(资源).来自OOP,感觉就像公然违反对
想象一下,您需要公开一个进行汇款的REST API:将一个帐户的金额转移到另一个帐户.如果我理解REST,那么这两个帐户应该作为资源公开,并且必须在这两个资源上调用两个不同的UPDATE操作.对我来说,这感觉就像是明显违反了数据封装.我倾向于创建一个API来模拟操作“转移资金”而不是资源“帐户”.我可以创建一个执行“数据传输”的REST API吗?这不再是REST(因为它似乎不是以资源为中心).
对RPC调用看起来比REST更合适的场景有何评论?
谢谢
我认为转移本身就是一种资源,具有自己的生命周期.我们可以将转移资源(以商业术语)发起以启动转移.转移资源将参考账户资源;引用其他资源的资源是RESTful.我们可以获取传输资源以确定其状态.
我们甚至可以对资源进行POST更新,例如,某些信息不完整.