如何同时实现restful和SOAP?
您无法实现符合REST和SOAP的单个API.
但是,可以创建一个公开RESTful API和具有等效功能的SOAP API的系统.
为此,系统的底层实现应独立于两个API.例如,如果您使用Java实现系统,则底层实现和每个API都应该位于独立的包中.如果是Python,独立模块.等等.
理想情况下,如果您有无限的时间,每个API都将完全设计为符合其体系结构样式的基础范例:RESTful API将适当地围绕资源和状态表示的转移,并且SOAP API将适当地定向围绕程序及其参数和返回值.
但是,为了节省一些时间,可以通过简单地将资源名称与HTTP方法相结合,在REST API之后对SOAP API进行建模.结果是一种REST-via-SOAP混合.
例如,如果您的REST API具有名为的资源(Mailboxes
支持GET,POST,PUT和DELETE),并接受并返回类型的表示application/json
,则可以通过创建以下SOAP方法对资源及其方法建模:
get_mailboxes(url, options) returns jsonDoc
post_mailboxes(url, options, jsonDoc) returns jsonDoc
put_mailboxes(url, options, jsonDoc) returns jsonDoc
delete_mailboxes(url, options) returns nothing
如果我的符号不正确,我很抱歉,我对SOAP并不熟悉.