【发布时间】:2015-03-05 04:19:56
【问题描述】:
例如,当向用户出售订阅时 - 系统会做的是
- 创建组织
- 创建用户
- 创建订阅
- 创建身份验证
- 创建发送电子邮件
- 更多基于业务逻辑的操作
以上所有内容都需要作为工作单元发生在 SAME DB 事务中。
在 SOAP 语义中,可以抽象为register(organisation, User, Plan, authentication details..more parameters),并返回一个subscription 对象。
但在 Restful World 中,我们只会用 HTTP 动词处理资源(只有 URL 中的名词),我发现很难描述这种业务相关的逻辑而不是简单的 CRUD?
【问题讨论】:
-
您希望所有这些事情发生在哪里?在数据库内部还是在您的业务逻辑中?如果你有类似存储过程的东西,你可以发布一个
registration_request项目,然后存储过程/触发器可以做所有的细节,比如在数据库端创建一个新用户等。或者你会有一些业务逻辑来查找registration_request条目,然后处理它们(在后台)。基本上,如果您的 API 是 RESTful 的,并不意味着 API 背后的逻辑不适用于多个“资源”。或者你可以重新组合你的数据。 -
根据我对 SOAP 与 RESTful 服务的了解,我相信唯一的区别是 SOAP 具有由它们的库文件定义的定义结构(我忘记了文件的扩展名)。所以基本上,RESTful API 可以用与 SOAP API 相同的语义来描述。
标签: angularjs api rest soap restful-architecture