我们希望允许我们的服务提供商企业部署REST或SOAP解决方案。这些服务将成为消费者向企业经纪人提出的特定请求的“权威”服务端点。因此,当提供程序将其REST服务发布到代理时,我们需要一种机制来创建基于SOAP的接口以供代理公开。关于如何以规范化方式处理这个问题的任何参考文献?
答案 0 :(得分:1)
关于REST的好处是接口几乎总是一样的。您可以定义一个SOAP接口,以可重用的方式概括REST服务的CRUD操作。
但是,我不确定您为什么要在SOAP层中封装REST服务。该服务的客户端可能会发现原始REST服务与自动生成的SOAP接口一样易于使用,如果不是这样的话。
答案 1 :(得分:1)
有一个名为WADL的WSDL等效于WSDL。您可以探索一种方法,其中REST服务提供者在WADL中向您发送其API的描述,将WADL转换为WSDL,并从WSDL生成您的代理提供的SOAP API。您的WADL到WSDL转换同时生成您的代理使用的映射逻辑,以将每个SOAP请求转换为服务提供者上的基础REST请求。我不知道这种映射会有多容易。
然而,David Chappell points out表示:
在大多数情况下,RESTly公开服务是更好的选择 情况,特别是在互联网上。 SOAP和WS- * 然而,技术仍然有一定的作用,特别是在企业内部。
每个服务提供商做出工程决策以支持REST或SOAP,或两者兼而有之。如果服务提供商确定仅REST是他们的Web服务的合适选择,那么为什么添加将其映射到不太合适的选择的中介提供任何值?你是不是只是增加了一层复杂性和低效率?
答案 2 :(得分:0)
请查看Mule作为执行此操作的方法。 Mule可以充当代理并将前端SOAP请求映射到任何其他服务请求,包括REST。