【发布时间】:2018-05-03 15:49:56
【问题描述】:
我是这个 Rest 服务世界的新手,我有简单的带有名称的 SOAP 服务
withDrawCashFromAccount(int id, int amountToWithDraw)
depositCashToAccount(int id, int amountToDeposit)
这是不言自明的,这是一个简单的服务,因为管理团队决定迁移到 restful 架构,我面临以下关于如何转换 restful API 中的两种方法的问题
- 为了更改资源中的单个列,我们是否需要发送 资源的完整 JSON 结构?。
资源名称“帐户”
e.g Json structure:
id : 1,
name : "awesome customer",
Amount : 500
-
为了有上述两种简单的用例,用户可以 提取现金或用户可以存款,我不知道我该如何设计 休息服务的终点。我可以命名它们吗
/account/depositCash/id, /account/withdrawCash/id
- 我还需要考虑上述调用的幂等性质吗?
目前使用spring boot,来自example
【问题讨论】:
-
如果您遵循 REST 架构,您会为余额资源建模,在该资源上执行的操作将导致存款或取款。 REST 还使用支持传输协议 (HTTP) 与资源进行交互。这些操作的语义定义了可用的工具集。每个操作都有自己的语义,
POST即由服务器实现者自己定义。虽然服务器应该支持客户端生成请求,但如何做到这一点完全取决于您和您的用例。 -
@RomanVottner 任何特定的理由来设置“余额”资源,因为它只有一个与 Account 类似的变量
-
这完全取决于你如何建模。如果您登录您的在线银行账户,资产负债表可能包括最近的存款或取款,总和为您当前的余额。通过使用 HATEAOS(链接),可以进一步深入研究每笔交易。用户元数据(如姓名、客户编号或其他内容)也可以通过链接到余额资源和类似内容的自己的资源公开。为什么要那样做?因为对不同资源执行操作传达了不同的语义,而且您以后自然会自然地重用资源。