REST 会破坏数据封装吗?

Dan*_*Dan 4 oop api rest

我试图了解 RESTful API 的范围和限制。我的具体问题是:如何使用 REST 处理公开操作而不是资源的 API?我是否应该放弃公开操作的诱惑并重新考虑 API 来公开数据(资源)。来自 OOP,感觉像是对对象封装的公然违反。

想象一下,您需要公开一个执行汇款的 REST API:将一笔金额从一个账户转入另一个账户。如果我了解 REST,这两个帐户应该作为资源公开,并且必须在这两个资源上调用两个不同的 UPDATE 操作。对我来说,这感觉像是明显违反了数据封装。我的倾向是创建一个 API 来模拟操作“转账”而不是资源“账户”。我可以创建一个执行“数据传输”的 REST API 吗?那不再是 REST(因为它似乎不是以资源为中心)。

对这种 RPC 调用看起来比 REST 更合适的场景有什么评论吗?

谢谢

djn*_*jna 5

我认为 Transfer 本身就是一种资源,具有自己的生命周期。我们可以 PUT 一个传输资源来(在商业术语中)启动一个传输。转账资源是指账户资源;引用其他资源的资源是 RESTful。

我们可以 GET 传输资源以确定其状态。

例如,如果某些信息不完整,我们甚至可以对资源进行 POST 更新。