带有 SOAP 和 REST 实现的 SOA

SOA with SOAP and REST implementation

我正在为 SOA 的概念而苦恼。假设有一个包含大量特定业务逻辑和资源的大项目。从我发现的 SOAP 和 REST 来看,SOAP 用于业务逻辑部分,REST 用于 resources/CRUD 部分。

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

这里的问题是写detail/overview请求可能会在REST和SOAP服务中,这不利于维护。

是否应该避免混合使用 SOAP 和 REST,或者是否可以按照我描述的正确方式使用它们?

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

例如,如果您有一个包含产品的订单并且您有折扣,可以在(创建)POST将产品添加到 /订单 URL 例如。在 GET/order URL 购买产品后可以看到折扣。这非常适合 REST。

然而,当由于某种原因你不能以相同的顺序获得产品 xy 时,这似乎有点困难在 REST 服务中执行。因为你必须给出正确的错误信息,比如“x and y can't be in one order',这暴露了业务逻辑并且看起来更好地适应 SOAP。有没有办法做到这一点是 REST,如果是这样,在这种情况下使用 REST 会更好吗?

一个宽泛的问题,也许太宽泛了。当然,这取决于您要构建的内容。如果您提供更多详细信息、平台、目标设备类型等,您将获得更好的答案。

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