SOA与SOAP和REST实现

时间:2016-02-12 16:16:05

标签: soap soa restful-architecture

我正在努力实现SOA的概念。可以说,有一个包含大量特定业务逻辑和资源的大项目。从我发现的SOAP和REST有意义,SOAP用于业务逻辑部分,REST用于资源/ CRUD部分。

我想到的想法是使用SOAP作为公共入口点,并使用REST作为SOAP的内部API(因为它不应该有业务逻辑),这样我可以利用两种结构的强度。

这里的问题是编写详细信息/概述请求可能是在REST和SOAP服务中,这对维护来说并不好。

应该避免混合SOAP和REST,还是以正确的方式使用它们?

编辑我会尝试制作一个更具体的案例。我还看到了一篇很好的文章http://www.infoq.com/articles/tilkov-rest-doubts。通过以不同方式重命名模型,这将解决在REST中使用业务逻辑的许多问题。

例如,如果您有产品订单并且您有折扣,则可以在(创建)POST产品之后计算 / order URL。在{em> / order URL上GET产品后,可以看到折扣。这非常适合REST。

但是,出于某种原因,您无法以相同的顺序拥有产品 x y ,这在REST服务中似乎有点难以实现。因为您必须提供正确的错误消息,例如' x y 不能在一个订单中,这就暴露了业务逻辑和似乎更适合SOAP。有没有办法做到这一点是REST,如果是这样,在这种情况下使用REST会更好吗?

1 个答案:

答案 0 :(得分:2)

一个广泛的问题,也许过于广泛。当然这取决于你正在建设什么。如果您提供更多详细信息,平台,定位什么类型的设备等,您将获得更好的答案。

但是,考虑为所有内容构建RESTful api,public + internal。我建议查看ServiceStack https://github.com/ServiceStack/ServiceStack/wiki/Why-Servicestack文档,讨论api的方法。即使您没有使用他们的工具集,这些概念也可以帮助您构建自己的网络API。